i was on the fence myself about the two cards.
gtx 660 is cheaper.
hd 7870 overclocks better (but that does depend on the quality of the card's manufacturer and is variable).
gtx 660 has CUDA (if the software supports it).
hd 7870 has better openCL performance (if the software supports it).
gtx 660 has lower latency in gaming.
hd 7870 has a higher memory bandwidth for msaa and tessellation.
couldn't decide so picked up a gtx 570 for $160!