Your question is very subjective. Personally, I use the built in defragger, but infrequently. I am of the school that teaches constant defrags do more harm than good. That being said, here is our list of software that works well with Windows. While looking for defrags you will learn about other great software.
There are several defrags mentioned in the above list. The one that is mentioned quite often in the forum, and well liked is this: http://www.piriform.com/defraggler
Tuneup utilities 2010 has a built-in defraggler which is quite good. And i personally think that tune-up is a program thats necessary for every PC. You cant even customize your startup logo and log-on page with it.
Anyways defraggler is a really great freeware. and yeah defragmenting once a month is more than enough.
It's a "religious argument" when you get to things like defraggers and image backup programs. But for free ones I'd look at Auglogics and Puran.
As richc46 noted, defragging too thoroughly too often takes a toll on the drive. That's why I like Auslogics and Puran. They both are "light" defraggers. Not super thorough. But good for defragging frequently. Puran I like now because it has options to fill gaps and optimize directories. When you disable the options in Puran it's pretty much the same as the lighter defrag used by Auslogics.
The defrag with these is light enough that you could run it every day without beating up your drive. I run Puran at least 3 or 4 times a week on all my drives.
About once a week I run Puran with all the options enabled for the system partition. The rest of the time I only enable the "fill gaps" option.
edit: btw I try to get my drive to 70% free space before doing a defrag. The more free space you have to less work the defragger has to do and the less the drive has to do. If your drives are 50% or more full you should store stuff other places or reduce the defrag frequency so you don't beat the hell out of the drives by defragging.