Actually the included defrag in Vista and more recent versions of Windows works very well. Since it runs automatically in the background once a week, there really is not much need to used 3rd party defrag software.
For example:
How good is the Windows 7 Defragmenter actually?
The Windows 7 Defragmenter does quite a decent job. Unlike its Windows XP counterpart, it does not perform as well at the boot optimization, but scores in the disciplines defragmentation and consolidation of free space. Thus, the Windows 7 Defragmenter is competitive with the other defragmenters. In other words, other defragmenters are struggling to make the system noticeably faster. An advantage of the Windows 7 Defragmenter is that it automatically works in the background. The user does not need to worry about anything in that regard.
As for the asked question. In the past benchmarks, Defraggler has been more effective than Smart Defrag. In
this test, in most benchmarks, performance was better with the Windows defrag than after using Smart Defrag. But, to be fair Smart Defrag has been upated since the test. But, my own recent testing of Smart Defrag, showed it unable to defrag a number of large files, despite there being plenty of free space.