The 9500 is a terribly weak gaming card. 1 gig of memory on it is useless. This is truley a slick marketing technique to sell a low-end gaming card.
For under $120, I would cast my vote for a 4830. And you do not need to pay a premium for a gig of memory. 512 meg is more than cards at this level, and double, double especially the res you run at, will ever need.
For $150 or less, I suggest you get a 4850 or 9800GTX/GTX+
Those are the best cards for your money.
As for specs, it used to be clock speeds, but now it really doesn't matter since clock speeds have gone down and other specs have gone up. Just look at the GPU's gaming benchmarks from various websites to see its performance.
If you do n`t intend to upgrade the monitor in the near future a 4670 will be fine.
If you do intend to upgrade the monitor, maybe you should push that budget now and go for a HD4850, saving you the need to stup up for both later, because the 4670 will start to struggle if you go to 20+" and 16x10.
The specs can sometimes be misleading. The GTX260 for example, has significantly better specs than the 9800GTX on paper - 2x more transistors, 50% more memory, almost 2x more memory bus, 50%-80% more shader units, etc
However, in actual benchmarks, the GTX260 performances only around 15%-20% better.
Does your motherboard support 2 GPU's(2 x PCIe-16)? Then keep the 9500GT as a PhysX processor and get another GPU for the rest of work. For 1024x768 9800GT would be enough. HD4830 is known to be 9800GT killer card. I'm not sure about that.
That really is not cheap at all. A 9800GT at newegg goes for around $100, or $40 cheaper than that bestbuy offer. And a 9800GT won't come close to using 1GB of RAM (considering a 9800GTX only has 512mb, and a GTX260 has approx 900mb of RAM, and both are much better than the 9800GT)