I think back in the old days defragging RAM was necessary because you could end up with the same amount total free, but if it was fragmented something may not be able to load in 1 chunk, not able to fit. I'm not sure this was ever a real issue with Windows though since there has been a pagefile for as long as I can remember. In Mac OS 6 (I think 7 too, and possibly further) there wasn't a pagefile and there was no disk usage for RAM unless specifically enabled. Therefore defragmenting RAM could potentially help.
Simple example:
8 Megs of total RAM.
1st program launched uses 2 megs
2nd program launches, uses 4 megs, starting after the first 2 used by program 1.
You close program 1. Now 4 total free.
You want to launch 3rd program that uses 3 megs of RAM.
In MacOS 6, it would say you were out of RAM because there were not 3 megs free in 1 complete span. You'd have to close program 2, then open them both again to allow this to happen.
Back to defragging HDs though, Vista is supposed to be doing this in the background, and as far as I know it is, so you shouldn't need a 3rd party defragmenter, nor should you ever need to manually run it in Vista. For XP I'd recommend Diskkeeper.