Few uninstallers are comprehensive, meaning most programs will leave some trace behind after their uninstallation. Unfortunately some are far more lacking than others, leaving a bulk of the app's files and settings behind, which may or may not cause a problem.
Another issue is that when a program is installed a list of files and settings to be removed is created. If that list is corrupted or deleted any any point the uninstaller may be unable to do its job, either spitting out an error or only getting it partially done.
Those primary reasons are why third-party uninstallers and 'cleaners' thrive. The Windows Installer Cleanup Utility can work in some cases, as will third-party apps. CCleaner is a free utility that can remove obsolete files and registry entries, but even it is only so effective. When it comes down to it, there will always be remnants left behind and the only way to be completely free of them is to wipe your drive and start over. Unless a major problem crops up, just use the above and try not to worry about it too much.
Have you ever installed a program and then when you uninstall, it keeps the files behind. Or does not do the uninstallation at all? What causes this and what can be done to make sure your computer is clean of the files?