CCleaner does a decent job, the most thorough one is
RegSupreme Pro however it is not free. Registry cleaners can help fix some problems but they do not improve performance in any way, so keep that in mind.
It is also dangerous to use any and all registry cleaners that you find since some with carelessly remove good registry keys. If the program has not been updated in some time (a year of more) I would avoid it.
Also the Microsoft Regclean is severly outdated and can cause a lot of problems if run on anything but Windows 95.