I only have a bit of experience in Git
For not expert of Version Control tools, Git and Mercurial are mostly the same.
They are born to solve the same purpose which was to host the source code of the Linux kernel so they have to handle well some specific use cases. One important was to be decentralized. So both are DVCS.
So,in the big picture, you could consider that they are doing the same.
But because that 2 different projects, with 2 different technologies (Python for Mercurial and c and shell scripts for Git), they end up with a lot of small differences difficult to sum up and that some will loves and others will hate.
Is there a situation where one should choose one over the other or is it personal preference?
In theory, for your own projects, you could choose what you want.
But don't forget that version control is very similar to a social network and you will obliged, most of the times, to choose what the majority have chosen before.
And that especially when you want to contribute to some projects or when most of your team knows already one of them,...
And, forced to acknowledge that at this game, Git became much more popular.
One example is the case of the hosting provider 'Bitbucket' which was the forge using Mercurial as its main VCS at the beginning, but stopped using it and now provides only Git.
There are some places where Mercurial is still popular (Facebook, Mozilla) but few compared to git...