I use a blend of Mercurial and SVN. I use Mercurial because I can maintain a local repository in addition a network repository that I can use to sync my multiple development machines and push updates to other developers in the community. Google Code allows you to host open-source Mercurial and SVN repositories for free ... a great resource.
But SVN is the flavor of choice when working with WordPress plug-ins and themes that you want hosted in the official WordPress.org repository. There are ways to interface Mercurial directly with SVN, but I don't necessarily want to push all of my changesets to repository. So I develop locally, committing to my local repo. Then I push at the end of the day/week/whatever to the Google Code repo. Then, when I'm ready for a new version release, I export the project and dump it into the SVN repo on WordPress.org.
This allows me to keep my work separate from contributors' work separate from what is actually released as "finished" to the community.
If you're on Windows, I highly recommend a GUI tool for using both systems. Tortoise SVN is fantastic, and Tortoise Hg is a great port of the same for Mercurial. I use both.
I experimented with Git for a while, but personally I prefer GUI tools and I couldn't find one that I liked that would fit in my development routine. GitGUI was OK, but a bit clunkier than the Tortoise tools I mentioned above. And there are too many outstanding bugs and issues with Tortoise Git for me to feel comfortable depending on it for version control.