since you will be playing mostly bf3 go for the gtx 670...if you budget allows its one of the best bang for your buck cards at that performance level...you can give it a healthy oc and get it up to 680 levels and that would dominate any game at 1680x1050 and even 1080p
edit: dont wait for the next generation there is nothing solid on it yet I have a feeling you would be waiting a while
I really don't get it how a HD 6870 isn't enough for you at that resolution but if you really need more performance for BF3 you should just buy a second one.This way you'll have a setup that performs like a GTX 670 (or better) and you won't spend a lot on it.
If you do decide to upgrade, what would your budget be? We can't recommend a GPU if we don't know your limits. The XFX 6870 ships for $188 ($150 MIR). At ~$250 you're looking at a 7870 2gb or a 560 TI 1gb and ~$300 it would be the 7950 3gb or the 660 TI 2gb.
My budget is about £300 which is about $480, sucks in the UK tax makes everything so much more.
At that price range you have three options, Radeon 7970 3gb, GTX 670 4gb & 680 2gb. Here is the BF3 1080 Benchmark that shows the 7970 on top, but those are special edition cards. I don't know if you have a preference, but I would go with the Gigabyte 7970 3gb 384bit GDDR5 for $450 shipped (don't know if they charge you extra or how that works) and comes slightly overclocked.
Edit: Your 300 pounds is ~$485 USD, so that 7970 fits nicely in your budget. Gotta love that exchange rate.
Both the 670 & the 7970 will last you awhile. Both cards will run you about the same $$.
The difference is that the 670 is faster in synthetic tests, 3DMark 2011 and such while the 7970 is faster in real world tests such as BF3. The 7970 also uses less power which means less strain on your PSU.
I think you'd be happy with either card. My personal choice? The one I linked, the Gigabyte 7970 Ghz Edition 3gb 384 bit.
One other thing to consider, GPU length. The 7970 is 11.5" long while your 6870 is 9.5" - 10.5" depending on the manufacturer. Do you have the room?
Edit: If you can find an Nvidia GTX 680 in your budget, I'd grab that, it's the fastest GPU Nvidia makes besides the $1000 GTX 690.
I honestly won't upgrade until this one starts showing it's age, which it hasn't even begun to. I haven't thrown BF3 or Crysis at it, but it runs (at 1920x1080) World of Warcraft Ultra, Starcraft 2 High, Skyrim High & Diablo 3 High and Black Ops 2 here in about 5 weeks, but that won't stress any Mid / High end GPU's on the market.