.
I've used Jkdefrag with no problems in the past.
True, you used it long ago - its now MyDefrag - and still kick ass 
+1 both of these. Currently use both, used Jkdefrag for something like past 5-6 years and switched to MyDefrag for some systems, usually Win7. I often use these to move all files to the end of the drive (first defrag), then defrag 2nd time with optimize. I usually get a noticeable performance boost for the effort on the system/OS partition about once every six weeks (or after major maintenance updates/install-uninstall events). You can boot to Safe Mode and run them; I usually kill all unnecessary processes and run overnight for large/full drives.
Windows defrag is not bad anymore. Used to be Not So Good, but from WinXP sp3 and up it's more than good & reliable enough for the vast majority of needs. JKDefrag/MyDefrag actually is just a user interface to unlock win defrag features.
I'm a fan of Piriform's CCleaner for some time (strong recommend); haven't played w/ their Defraggler much, but it seems as good as any and I'd trust them. Ultradefrag seems to have a good rep from what I've seen, so I'd also give it some trust to play around with.