I'm not sure if there's a best approach here, but here are a few things to consider:
The most basic approach
I use is to always name my files in CamelCase followed by the date, for example: MyDescriptiveFileName07122010. When you up the file again on a new day, immediately 'save as' the new date, and then continue working. Wash, rinse, and repeat.
A second approach
is to use the package 'A Worklife Framework', by David Reiss ($90 for academic/student users). His package includes features to automate the backup process, etc., and sort of forces you into a particular type of work-flow. A 'Diary' acts as the main hub for any particular project. You can then create regular and 'scratch' notebooks and 'packages' (and all of these are kept separate and organized for you, along with data or other files necessary for the project). David's a really nice guy, BTW.http://www.scientificarts.com/worklife/screencasts/index.html
(Click here to watch some screencasts of what can be done with the package.)
Download a trial version here: (I recommend the 3.0 version, 30-day trial) http://www.scientificarts.com/worklife/trial.html
Possible issue with the above approaches... Multiple file versions flying around can be a headache if you work on two machines. One tool that has worked well for me is Windows Live Sync (http://sync.live.com/
); there's also a version for Mac, from what I've read. I started using Live Sync after encountering some issues with saving over networks (files became corrupted; probably due to the way my home network is configured; bigger files seemed to be more problematic).
A final approach
you might want to consider is the Wolfram Workbench 2.0. I use this more and more as a way to move chunks of 'keeper' code out of scratch notebooks. The REALLY nice thing about developing in Workbench 2.0 is the 'history' feature. This lets you compare specific bits of code with past versions, side-by-side, and there are a number of handy features for finding and replacing symbols, function templates, adding options to functions/symbols, etc. If you have 'premier service' you should be able to get it for free. http://www.wolfram.com/products/workbench/videos/
(I recommend you watch the 'introduction', 'documentation' and 'working with code and packages' videos if you're not familiar with Workbench)