I have a lot to say about version control, but I won't get into the details here.
However, on the 'switch from CVS to SVN', I'll comment and say that SVN is far superior to CVS.
The whole 'changes committed to the repo up the entire repo version' alone make this worthwhile.
SVN is also less arcane in its usage.
SVN has better tools for, well, everything.
SVN integrates well with all major IDEs (mine being VIM, but also Monodevelop and Eclipse).
The switch from CVS to SVN also made our releases much easier to manage (merging branches is fairly trivial and tagging is a no-brainer).
If you're using CVS in a company, do yourself a favour and switch to SVN. The basic concepts are the same, so re-educating developers takes all of 5 minutes.