I use a program called iDefrag and run it about once a month on each 8 hard drives connected to my computer. I agree with others that generally it isn't necessary but can be useful in certain situations. If you're on a laptop with a slower drive (or a laptop generally) it can help increase battery life. If you deal with large files, such as multi gig HD movies, then defragging can help with performance generally.
Those that say that defragging can decrease performance are referencing the fact that OS X separates data on the drive into different zones. A program like iDefrag will honor this system, and organize the metadata into the metadata zone and so help out OS X. A program that doesn't do this can put things where the OS doesn't expect them to be and cause problems.
I think iDefrag has a trial. Get it and see how fragmented your drive is. You can then decide what you want to do long term.