Another second here for Garmin + SportTracks.
I have had the Garmin Edge 305 for nearly a year and it's great. Though i've now got 2 "not completely functional" cadence/wheel speed sensors which I need to deal with.
SportTracks caches the google map tiles locally too, so even if your offline you can still see the maps for the areas you've been before (assuming you do alot of riding around your normal area).
And for sharing data online, Garmin Connect (formally MotionBased, and now free) is really good. It lets you show off how awesome you are.