For the last few years I have been running on a pretty regular basis, clocking over 20 miles a week most of the time. Joining a running club has certainly helped with motivation but the thing that has kept me going back for more is Strava.
Not much pleases me more than getting back from a good run and finding out I have nailed a PB or destroyed a segment (segment hunting is addictive - just don't do it kids). Having said all that, there are things that Strava does not do very well - sometimes the stats you want simply are not available, fortunately they provide an API to allow apps to integrate with them.
A couple of my favourites which I have come across are Best Efforts and VeloViewer which both add features over and beyond what Strava provide.
I still however believe there is more than can be done so I have started building my own app which I will launch soon using this excellent .NET Strava Library. Of course this does mean in order to test, I will need to do more running...so sometimes exercise can be fun.