I've used MapMyRide and Strava, with a brief trial of BikeComputer.
Currently using Strava (free version) and it works pretty well. I do occasionally get some wierd stuff (pauses mid ride, etc). I've disabled the auto pause, and that seems to help, but now I occasionally forget to re-start if I pause manually.
For those who don't want every strava ride to get posted, the app lets you either post it privately, or you can simply not save it.