8800GTS 640 MB is an old card based on G80, while 9800GT and 8800GTS 512MB are based on the newer G92 (another case of Nvidia trying to fool their customers like they just renamed 9800 to GTS 250). G92 is better and has more stream processors, so I'd recommend going for 9800GT.