I use Tortoise SVN usuallly, but I have been looking into Mercurial since it is a distributed revision control system.
What I am looking for, in both systems, is a tool
I asked a similar question just a little while ago, and the resulting answer of using the hgshelve extension was exactly what I was looking for.
Before you do a commit, you can put changes from different files (or hunks of changes within a file) on the "shelf" and then commit the things you want. Then you can unshelve the changes you didn't commit and continue working.
I've been using it the past few days and like it a lot. Very easy to visualize and use.