You might want to hold out for a little while anyway, unless you got some killer game that you must play, because Nvidia and ATI have some awesome offerings coming up Q1 2005 that will at least reduce the costs of their current ones if nothing else.
best bang for buck (if/when it makes it to the market) is the new ati card... the x800 XL running on 0.11 micron tech for pci-Express... @ $299 and with 16 pipes and being one of the faster cards out there, its a mini-monster...
otherwise the 6600 series (in future sli-mode) and the 6800GT continue to be good investments... around $399 for the big brother and its plenty fast in pretty near everything...
I second everything sazar said one hundred percent. The new x800XL is a pretty sweet card but should only be pci-e...for agp and pci-e the 6600GT and 6800GT are also really good cards...especially in sli mode for pci-e..gigabyte has created a dual 6600GT on one pcb that in the older 3dmark03 beats out the x850XT from ati so that sounds promising...link here...http://www.tomshardware.com/hardnews/20041216_115811.html
for anyone else looking for a card that might want the x800XL wait to see what the prices are before you decide to buy it...like sazar said it's a great deal but with the most recent ati offerings supply has been very low and prices have been way over what they are supposed to be...Nvidia hasn't had great supply but they have been better and because of that the prices have been more around what they are supposed to be
ATI's 2004 Offerings are pretty direm, and if you thought it was hard getting a 6800Ultra ATI cant even SHIP the X800 range to its OEM partners nevermind anyone else, so even though they are okay alternatives, you cant get one.
so your choices would be a 9800Pro or 9800XT from ATI,
6800GT AGP/PCI-E, 6600GT AGP/PCI or 6200 AGP from nVidia
Personally for games I'd go with the 6800GT AGP, for home entertainment take a loko at the 6600 and for an el cheaper that is upto date but not so demanding on the wallet the 6200 but that is really fairly crippled imo.