This is going to sound silly to a lot of folks here, but I am going to say source control. Specifically, off-site, hosted source control.
You don't have to be the most active member of SO to see how many questions there are that ask about alternatives for recovering from a disastrous code-loss accident. Many of these well-intentioned folks are simply running on the it'll-never-happen-to-me idea, and of course it usually does.
Of course, recovering code that has been deleted in an accident or hard drive failure only covers part of the benefit of keeping your code under source control. Recovering from an idiotic change to your code is the greatest benefit. I can't count the number of times that I've saved my own bacon from an ill-considered refactoring because absolutely everything that I do is commited and can be reverted.
So, kids, use source control. If you don't, you'll appreciate it only when you needs it, when you realize how badly you just screwed up. Additionally, having your code backed up off-site is the greatest peace of mind that you can hope for.