MapMyRun seems to be the best since it uses Google Maps, I rely on that pretty exclusively. I used to use the Nike+ GPS iPod app but that was rarely accurate- always a little off, and the other two I bought were just plain awful- Runmeter and Motion-X GPS.
When running trails I use the park’s brochure and add up the miles after a run (gets tedious but I think I’m able to recite all the trails in the East Bay’s mileage now).
I also use an Axio HR for heart rate monitoring (interval training) and altimeter, I love logging vert.