A lot of factors can affect a card's hashing speed:
- gpu clock speed: this one is a no-brainer - hashrate scales almost perfectly linearly with gpu frequency
- video memory speed: this one is a bit trickier - most cards actually improve performance if you lower the memory speed. The sweet-spot can be anywhere between 160 and 400 MHz for 5xxx and 6xxx series cards. The impact on hashing speed isn't nearly as big as with gpu frequency, but gains up to 5% or so can be achieved
- APP SDK version: 2.1 is supposed to be the best for 5xxx series cards, giving ~10% higher performance than 2.4. Versions 2.2 and 2.3 are not recommended for several reasons (low performance and high cpu utilization). 6xxx series is not supported in 2.1 though.
- Catalyst version: from what I've read results seem to be all over the place, so I can't really recommend which version to use. I'm sticking with 11.5 for my combo of 5870 and 6870 cards.
- OS: again, different people report differently about whether Windows or Linux is faster, same for 64-bit vs. 32-bit
- miner used: phoenix's phatk kernel seems to be the fastest for most users, at least under Windows. Under linux, again, different users have different results with various miners. In my case it's pretty much a wash between phoenix (phatk) and poclbm under linux.
As for card choice... a 5970 is more power efficient and has better performance at a given gpu frequency. You can also use 2.1 APP SDK with it. It should also be cheaper to buy. It's probably just about impossible to get either new or used. It will also be harder to sell when you stop mining, or, if you keep it for gaming, will be a good deal slower than the 6990.