For me you cannot beat Diskeeper. The free version is a huge improvement on the Windows defragger, but the paid for version reigns supreme. It can be set to run continuously in the background if you want, or to defrag at preset times. It can also defrag the boot files. It is not expensive, and is well worth every penny.