It used to be that I'd recommend registry cleaning programs like CCleaner, RegScrub, RegClean, etc. But anymore I just don't trust any third-party registry cleaning software enough to warrant recommending or even using them myself. Since the registry contains all of the OS's "knowledge" of the computer's hardware devices, installed software, the location of the device drivers, and the computer's configuration... a misstep in the registry can have severe consequences.
If you do have a problem that is rooted in the registry, it would be far better to simply edit (after backing up, of course) only the specific key(s) and/or value(s) that are causing the problem. Additionally, the manually changing of one or two registry entries is far less likely to have the dire consequences of allowing an automated product to make multiple changes simultaneously.
Another thing also... no two registry cleaning programs are going to find the exact same entries after performing a scan. So on that basis, which one do you trust to clean your registry?