As you know, many programs leave debris around after uninstall. Now, there are all types of debris, and some of it is more important than others. As I recommend on my RegMerge page, do NOT resort to registry cleaners that may very well cause more harm. Instead, I recommend using RegEdit to search for the product's name, then delete keys or values that have it. WARNING: Be sure you know what you are doing and have made a backup of your hives or restore point first.
The most serious thing left behind are shell extensions or unrestored file associations. These can cause complications, or at least annoyances. In the latter case, unrestored file associations (e.g. the program didn't revert to associate whatever extension with the previous program), you must manually correct these. I've always thought of a project to try to repair these to their default state, and indeed RegMerge was/is the basis for that. However, for it to work, we first need 'default sets', which are .REG repair files that simply replace the shell association with its default handler. If you have such, please submit them, you'll of course get full credit for your contribution! Remember, RegMerge is 100% freeware from Bitsum - one of our many contributions to the community!