Here are some benchmarks. http://www.tomshardware.com/reviews/battlefield-3-graphics-performance,3063-3.html
The GTX 560 ti will run battlefield at a smooth 60. They run the gamut between $230-300. If you opt for a more expensive card, the GTX 570 is in the "sweet spot" between budget and performance as you'd have to pay another $150 for a 580 and only benefit about 10 fps on average. The 570s cost around $350. I wouldn't go with anything less than a 560 ti, personally. Battlefield 3 is a great looking game, but it is also better optimized that most. Also, games are only going to get more and more demanding.