Look, when your really at neck and neck, which really the 660 and 7870 is, they trade too many blows to say which is better. Thats when you go to the fine points about the card.
256 bit memory interface on the 7870, compared to 192 on the 660, 7870 wins.
660 draws a tiny bit less power than a 7870, therefore 660 wins there.
7870 wins comprehensively both in texel rate and pixel rate against the 660, 7870 wins.
7870 is built more for overclocking than the 660, however this is too random to actually give a verdict, as you can get a crap overclock with the 7870, however, just keep in mind your more likely to get a good overclock than a crap one.
Really overall, the 7870 and 660 both have their advantages depending on which games you play.
If you like high resolutions with AA, go with the 7870. If you play at 1080p with no AA, but still crank the settings up at the same level as the 7870, then typically the 660 will win.
It really depends on which game is optimized for which card, however unfortunately, typically games are more tuned towards Nvidia cards, however this doesn't mean much, as Nvidia cards are still beaten by some ATI cards in Nvidia games.