I've tried a fair few of them by now, and have settled on iMapMyRide, because it's accurate (most are), and it shows hill categorizations, which I think is tres cool. There are a lot of hills in Calgary, so it's nice to get some tiny tangible recognition for climbing them.
But there's something EVERY iOS cycling app appears to be missing, and it should be pretty easy to implement. Who will be first to link up to local weather stations and show wind speed and direction along the ride?!? I mean, the app knows when I was at a certain location, so why not check the closest weather station and include the relevant information? It could look something like this: