Well, here at work, one of the top graphics programmers tells me that the best card (from a programmer's point of view) is the top of the line nVidia GeForce 6800 cards. The reason is they support Shader Model 3.0 (and from what I understand, no ATI card currently does). From a gamer's point of view, few (if any, in fact, I don't think there are any) games use Shader 3.0, but if you've got your eye set on the next generation of games which will use shader 3.0, then this might be important to you.
But aside from that, both companies are very good. Only a few weeks ago I bought myself an ATI Radeon 9800 Pro 128MB card, which I felt was better then all nVidia cards below the GeForce series 6 cards. Before this, I had an nVidia GeForce 2 TI which was also very good for it's time (but it couldn't play
Battlefield Vietnam, so I had to upgrade ;-) ). I personally wouldn't waste my time with any nVidia series 5 cards, except for perhaps the FX5900 & FX5950, but I find those lag behind in hi-res scenarios while the 9800's pull ahead.
At any rate, check out Tom's Hardware:
VGA Charts IV - Mike