Where should I start learning about version control systems? I've used SVN, Team Foundation, and Sourcesafe in the past but I don't really feel like I grasp it completely, and my team doesn't seem to grasp it either.
Which points are the most important to master? I realise this differs from VCS to VCS, but for the sake of this question we can assume that Subversion is the VCS I'm the most interested in learning about.
Also, if you could, please recommend any books on the subject that you find useful.
IMHO, the best network resource for Configuration Management would be The ACME Project by Brad Appleton
You should read about all SCM patterns and Anti patterns. All SCM technical terms are well defined on this site and there are many articles on branching techniques, agile SCM and other important stuff.
This, probably, will give you enough theoretical background to handle any specific version tool.
As to a Subversion book, it is probably will be the Official Subversion book which was mentioned above. It is available online for free or you can purchase a hard copy.
I also, like you, never really felt a 100% comfortable with SVN or SourceSafe.
Check out Mercurial. Quickstart and Cheatsheets
also a great cheat sheet from DongWoo Lee (his site seems down so I scanned it and uploaded onto mine)
With Mercurial everything seemed a lot more smooth and easy not sure why because it's not that different in commands to others.
I think the Subversion documentation is a good place to start. I found that Wikipedia doesn't really help, since it only covers a 'fundamental' point of view.
In the Subversion Book that alex mentioned, I'd especially recommend Chapter 1, although that might be on a level that's too low if you already have some experience with Svn. Chapter 4 covers branching and merging in detail, but it's quite technical.
What helped me a lot is the Daily Use Guide in the TortoiseSVN documentation; it covers the most important operations in a tutorial style.
I guess the most important things you need to grasp are branching, merging and tagging. Understanding those takes time and practice, so I'd strongly recommend a small pet project in a local repository, so you can experiment. I think it's important to realize is that the whole system is diff-based: a merge is nothing more than automatically applying the changes that have been made in one branch to the code in another branch, instead of correcting the code yourself. Stuff like conflicts (which took me quite a lot of time to understand) are just consequences of that.
But of course, I'm still learning as well :)
Check out GIT. A talk on it here.
IMHO, this is THE book: Berczuk's book on SCM patterns
The wikipedia article on Revision Control is a great place to start
Revision control
When trying to teach my colleagues, I found getting him to understand the vocabulary at the end was a great way to start to introduce him to source code control techniques.
Don't know what a branch is? Go find out and how they work :)
There's a free online subversion book at Version Control with Subversion which provides an invaluable reference.