I am experimenting with Revo Uninstaller and it seems to be OK.
By default, it simply runs the program's uninstall routine, as would be done from add/remove programs.
After that finishes, there are options to dig into the registry in 3 separate stages: deep, deeper, and deepest.
You can go to these 3 steps if you want to, individually, or go no farther than add/remove programs would have done.
I have used it 3 or 4 times. Each time, the default step did in fact leave registry entries behind, but going through the additional three steps removed them.
So far so good, YMMV, etc.