Yeah, whether or not defrag will really help depends a lot on how fragmented your files are. That depends on the average size of your files and how often you move them around. So if you install a lot of games or programs or work with files larger than like 10MB on a regular basis then you should probably defrag on a regular basis. If you have a lot of free-space on the hard drive, then you probably won't need to defrag as often.
As far as commercial defragmenters vs windows built-in, I've noticed the better ones do one thing different that may help out. A lot of times they not only defragment files, group files with their repsective programs, and put more commonly used files at the head of the disk where data transfers faster (all this the windows built-in defragger does), but they also set aside extra free-space for new files associated with some programs. I don't know how accurate this is, but if it works, then when you use a program to create a data file, then there would probably be a space for that data file not too far from the program file. That may mean that your data files are less likely to be fragmented in the first place and you wouldn't have to run defrag as often. Like I said, that is ideally. Personally I would just use the Windows built-in defragger. If your not sure then have it analyze every now and then to see if you need it. The average user I would guess should do it about once every 3-6 months. You probably won't notice any difference if you do it this often, but it keeps things from getting worse.
Remeber, if you're running out of disk space, you should probably run defrag more often, but then defrag takes a lot longer to run if you have too little space. I think the WinXP defragger won't even let you defrag if you hav less thatn 10% free.