I've found this to be a good resource:
CVS Book.
I use CVS for all kinds of stuff, not just coding (system configurations, home directories, etc). I would set up one server to do CVS for all projects at all stages. Maybe once a project gets to a certain point you can strip the history by doing a release and then checking that in as a new project.