I think your choice of GTX 660 for a price little over $200 is excellent.
I recently bought a factory overclocked Gigabyte GTX 660 and I am very happy with the card.
The Radeon 7870 is a little more powerful and more expensive, but I chose the GTX 660 for my own system
because of the cost savings and the fact that it can easily output to 3 monitors (even a 4th if you are using a Display port monitor) so for example you could hook up this video card to 2 DVI monitors and a HDMI TV
Most of the current AMD HD Radeons require expensive Display Port monitors or adapters in order to do 3 or 4 displays.
If your budget is larger then a GTX 660 Ti is another option.