SourceTree is pretty solid GUI for Mercurial & Git. If you *only* use Git, you might want to take a look at Tower, but I use Hg at work, so I needed something that could do both.
Functionally speaking, this works pretty well. The diff pane is quite useful. I generally review all my changes in there before doing commits; it's a great way to ensure I didn't forget anything in my dev notes, and it helps me decide what the commit summary should focus on. As expected, you can configure it to use whatever external tools you want for diffing and conflict resolution. (Oddly enough, despite all the apps competing in this space, I still find Apple FileMerge is the best one. Kaleidoscope is beautiful, but because it still can't ignore whitespace changes, it's basically useless.)
What I don't love about this app is the crummy GUI. I don't care if it's pretty; that's not the issue (I actually really like the app icon; everything else is…meh, but whatever). It's just very poorly designed. Every repo opens in its own window. There's no single-window mode that lists your repos in a sidebar (in fact, your repos are listed in yet another, ill-conceived "Bookmarks" window that you have to leave floating around if you want to see an overview, as you simply can't get any of that information anywhere else in the app). I really dislike having to cycle through a big stack of large windows, especially with that awful Bookmarks window being one of them.
Each of these repo windows has to be manually customized to get the sidebar/pane widths and other view settings the way you want, and to make matters worse, it doesn't even remember them reliably. All of the window adjustments you make are routinely forgotten when you close/re-open the app. Sometimes it's just comically bad, e.g. for no apparent reason, the sidebar in one of the windows will have resized itself to fill 90% of the window, and everything else is completely screwed up and has to be dragged back where you wanted it, all over again. This sort of stuff just drives me nuts.
Lastly, there's the sync feature that's supposed to watch for file/repo changes and indicate when you've got unsaved changes, and any pending incoming/outgoing commits. For me, none of that stuff ever updates until I switch to the app and start interacting with one of the windows. At that point, it usually noticed which files have been modified, but it's not smart enough to recognize that I've already pulled or pushed anything until I click the sync button. Supposedly it should do all this automatically, but for me it never has. (I do a lot of these things outside of the app, on the command line, which I prefer for anything that doesn't really need a GUI.) This is something MacHg (RIP) did very well.
For the price, I really can't complain too much about this app. It does get the job done, and that's the most important thing, but it manages to annoy me quite often in the process, and I would very happily pay for something better if one of the nicer apps like Tower actually supported Mercurial.
In the meantime, anyone who needs to work with both Hg and Git should check this out.