I use Perforce at work, having previously used CVS at my last job. After the initial learning curve, it is much better to use that CVS. (It's probably easier to learn from scratch than CVS, but I don't have experience that way.) If someone needed a centralized source-control system, I would recommend Perforce, as long as they had the resources to license it.
On the other hand, I've recently been looking at some distributed source-control systems (git, Mercurial, and Bazaar, specifically). They have a lot of features that look very intriguing, especially not requiring the constant server connection. Additionally, you could set up your system to have a "main" server, even with the distributed systems. So I would suggest looking at one of those first, and see if they meet your needs.