GNSS satellites (at least the GPS ones) are in MEO, so LEO spacecraft can use GNSS for their positioning. I've read that it's quite low-cost compared to the alternatives. How does the precision of GNSS-based positioning compare to other methods? Is it sufficiently accurate, for example, for earth observation satellites?
This is a somewhat nuanced issue. Yes, GNSS can be used by LEO spacecraft, and yes it's done often and is often more cost-effective than the alternative (mostly because a ground system that does orbit determination is expensive). I'll speak about GPS because that is by far the most common.
There are basically two aspects to this: autonomous, on-board estimation using GPS, and "post-processed" estimation. A GPS receiver will give you what it calculates as your state (i.e. position and velocity). This can be used, and is often accurate enough (when, say, your accuracy requirement is just postion within 1km).
However, often the accuracy requirement will be much higher (centimeter-level). In this case, using the GPS receiver navigation solution will not be adequate. As an alternative, you can record/downlink the GPS pseudorange measurements (basically raw GPS measurement data), and with advanced estimation techniques (not to mention the more accurate post-processed GPS ephemeris catalog), you can get to your required level of accuracy. Note that this will not be real-time, unlike the on-board solution described above.
As to how this compares with "traditional methods" (e.g. ground-based ranging or SLR), that also depends on how many observations are taken, etc., which in turn is driven by the accuracy requirement. I think it is safe to say that both GNSS and "traditional methods" can be made to meet the accuracy requirement of the mission.