Really depends if you have plans about overclocking or not. I would say out of the box on the paper I would probably chosse the GTX660. But 7870 cards are known to be able to overclock quite a bit and a successful overclock of the 7870 will outperform the GTX660. If you are a overclocker and don't care about PhysX I would go with the 7870 from ASUS or MSI.
Actually I would by the 7870 and overclock it if I would find it necessary.