Go with the Radeon 7950 as it offers the best performance for the price. Also you don't need to upgrade your CPU or your motherboard as they will both support it although there will be a very slight bottleneck because of the CPU.
GTX660 will do that easily. Question is whether it's important to you that you have two years of gaming at max settings, or if you'd be happy to use medium/high instead of high/ultra? To be able to play everything on ultra at 1080p, you'd need a GTX670, which is out of your price range, and that's just for today's games (though most games would be fine maxed on a GTX660). If you just want to be able to play them at decent settings, GTX660 will serve you well.
And GTX670 better still :-) While GTX680 would be a waste of money. Honestly, until recently I'd say GTX660 is the way to go, but Far Cry 3 on max and 1080p AA really gives it a kicking. The GTX660 is a superb card, but unfortunately it's no longer possible to say it'll handle anything at 1080p. For that, GTX670 is the minimum now. And with GTA5 and Crysis 3 coming up, it's soon gonna be more games than just Far Cry 3. As usual, the more you spend, the better it is (though the GTX680 really isn't worth it for the framerate gain).