7870 or 660

not a lot of real-world difference, and is game/resolution dependent. Keep in mind all the 660's that are available are already factory overclocked, negating the performance difference between them and a 7870, and also most of the 7870's available are factory OC'd too. I would say look more at features to determine which one is best. Eg, if you play bf4 and have a weaker cpu, the amd card is going to be better as AMD's mantle improves performance vastly particularly on systems with weaker cpu's. If you play games that use physx, then the nvidia card might do something for you.
Either way id wait a little for nvidia to release its gtx750ti as it could be better than both and priced well.