If you have money, and everybody is located on one geographic site, and you are making something huge, then use Perforce.
If you have a distributed team, you need to use either Git or Hg.
If your team is composed of experienced developers who like to do their own thing ... then Git is the only choice.
If your team is composed of less-experienced developers, or you want something that just works & won't confuse & distract neophytes, then use Hg.
TortoiseGit was a little difficult to use because it tried to map Git concepts onto the original TortoiseSVN concepts ... which confused us quite a lot as we were just trying to learn Git at the time, and the second set of concepts added to the confusion.
I can't quite remember what the issue with TortoiseHg on OSX was (It was 2 years ago that I tried) ... but it might have been something to do with the shell integration rather than the Hg-ness of it.
Disclaimer: I currently use command-line Git for everything, but that's mostly because I am currently operating in a very hardcore-software-developer-oriented environment rather than the non-software-developer-domain-expert-oriented environment that the TortoiseXXX tools suit.
If you want to track your changes even when you don't have access to internet, GIT is the way to go.
Maybe this thread[1] could help you to choose one or another.
[1] http://stackoverflow.com/questions/161541/should-i-use-svn-o...