I've tried a good handful of them, Revo Uninstaller, IObit Uninstaller, Geek Uninstaller, Wise Program Uninstaller, Absolute Uninstaller and I've found that while all of them detect left over files in a way, they all fail to detect everything left over as my manual browsing for left over traces shows.
I then tried Total Uninstall's "Monitored Programs" feature and that proved to be highly effective surprisingly.
Quote from the website description:
http://www.martau.com/
Total Uninstall utility can monitor new installations.
With "Monitored Programs" module it helps to monitor any changes made to your system during the installation of a new program. It allows you to perform a complete uninstall without having to rely on the supplied built-in uninstaller, which can leave files or changes behind.
The only downside is
it's not free.
It's up to you to either use free uninstallers and put up with missed left over traces and then manually browse folders such as /Temp/ /Program Data/ /Common Files/ /Roaming/ /Local/ etc to remove the final left over traces. That's not even including the Registry.
Or give Total Uninstall's "Monitor Programs" feature a go.
Thanks.