Defragmenting is the process of moving bits of non contiguous data and organizing it so that it is contiguous. Its grouping the data in a nut shell. It is good to do because when your data is organized it can lead to faster seek times. Eventually (I am talking way off in the future) if you do not defragment it could cause your computer to crash. There will be not a huge speed improvement if you defrag often, but if you let it get really fragmented, like after a few months of not defragging, then you defragment it it will create a noticable difference. PS: The more often you do it, the less time it takes. The longer you let it go the longer it will take to defragment the disk.
As PeOfEo said, but I would like to add some. Certain things that defrag the drives more then others: games (the computer my brother uses for games often gets the most fragged), loading and deleting programs (your adding/deleting huge chunks that need ordering basically), um... I believe video work is supposed to as well, but i cant back this up with experience.
And to further on what Peo said about doing it often and it taking less time. I do it every week because it only takes a couple seconds then. If you rarely do it then it can take FOREVER :P
Last thing. Dont fill your drive up too much. This will also make it harder to defrag and it slows the computer down a lot. From what i have been told about 15-20% of your drive should be free.
haha, another thing that can help speed things up is removing most things that start during startup. Most of them you dont need. I use RegCleaner to do that plus clean out invalid registry keys. Not sure how much it costs though.