As far as I know, there is never a direct need to defragment your hard drive. It's an optimization process and therefore should be applied at will.
Since defragmenting means reorganizing hard drive structure to use the empty blocks inbetween the used ones, I would say that once in half a year is enough, maybe even once a year. I never do it, since it takes too long on big hard drives and I can live without the minor bonuses it gives.