There are many defrag programs out there. If you think about it, they all pretty much do the same thing. They just move the fragments of files together on the hard disk so that your computer can read them quicker. The only benefits of the commercial defrag programs is that they tend to finish the job faster than the standard one that comes with windows.
i use diskeeper, because the defragger that comes with windows is actually just an older version of their software. Also I've found that not all defraggers are created equal, as the windows one will lump files together, but newer ones will then lump those lumps together by category (system files / documents / programs, etc).