I have a pair of commits that should really be just one. If I was using git, I would use:
git rebase -i
and then
My favourite is hg strip --keep command. And then I commit all changes in one commit.
It is the fastest and most comfortable way for me, because I like to do many small commits during my daily work ;)
Note 1: strip needs a built-in extension mq to be enabled.
Note 2: My favourite Git/ Mercurial client (SmartGit/Hg) appends by default --keep parameter during strip. And what is even more convenient: it provides option called join commits :]