Good cards depend on two things:
1) Your price range
2) Your current hardware
#1 is obvious, you can't go out and buy a GF7900GTX if you can't afford one. But definately pick a card with superior processing, not more memory. You can play max res even on a 64MB card
#2 is more tricky. If your board supports PCI express, get one of these cards, even if you have to get a "lower model" than the AGP. AGP is good, but PCI express is able to communicate x16 in BOTH directions, whereas AGP will only comunicate x1 in one direction and x(whatever your AGP speed is) in the other. This is a frequent source of graphics slowdown. Also consider how much memory you have. More memory allows for faster loading, but not if you can't render the maps equally fast. So get at leat 768 MB of ram (pref 2 GB) before getting a new card. Also look at your CPU speed. Anything less than 1500Mhz is going to get chuncky when you get a new card, because the CPU cannot handle things as fast as the GPU on the graphics card.
So in conclusion: Get the best card you can, but before buying a new one ensure that you have:
* at least 768 MB of ram (more is better)
* a decent CPU
* a Mainboard with PCI express support and a fast chipset (pref no south bridge)
With 2 GB of memory, I can play the game lag-free in decent res and reasonably high settings on all of my PCs, even the one with a crappy Radeon x800 on-board card.