Deframenting speeds up the system dramatically, BUT using the default defragmenter doesn't defrag file fragments bigger than 64MB or even include them in the fragmentation statistics
When you have file fragments for one program scattered all over your hard drive, it takes time to recompile them in order to execute the program/data in question. Consolidating all file fragments regardless of their size will result in faster access and execution. Now multiply this by hundreds of thousands of individual file fragments that the cpu must recompile to execute in proper sequence per Windows or User command at the same time. I have seen the GUI show 0% fragmentation where the -w command will show 10% fragmentation on a 640GB SATA RAID 0 drive- thats alot of little individual file fragments scattered over a modest size drive...
But this is only part of the problem, now add into the equation file system errors and bad sectors on the disk...and even the fastest system will slow to a crawl over time.
I strongly recommend not using registry cleaners-unless you know what you are doing-otherwise, chances are very good that the Corruption it may cause will require Windows re-install to fix.
Here are two steps to a faster, better performing system.
note- these steps will perform a full defrag (defrag c: -w), and will fix file system errors and attempt recovery of bad disk sectors. How To Make Vista more responsive and faster