As with many things, there isn't a "best" tool, just different ones.
CVS & SVN are optimistic - which means you don't get a lock on the files before editing them. If there is a conflict, you merge. I like this better as conflicts are rare. VSS is pessimistic and you must get a lock up front.
SVN is an evolution of CVS. It is generally considered better. SVN has a number of features not in CVS including atomic commits, commit sets and tracking changes even after a file rename.
While I can't say it is the "best", I recommend you use SVN if first starting out.