If you have to buy new, people aren't going to like the answer, but the 128 bit 9800 is faster than a 9600xt and is under $150.
I know, it's no real 9800 Pro, but hear me out.
9800 128 bit is 325 MHz (8 pipelines x 325 = 2600 mpixels/sec)
memory is 290 MHz 128-bit
9600XT  is 500 MHz (4 pipelines x 500 = 2000 mpixels/sec)
memory is 300 MHz 128 bit
so even though people don't like the 9800 128 bit cards, they actually fit their price segment fairly well.  
The other option, as has been mentioned is a used 9700 Pro, or I'd try for a used 256 bit 9800 non-pro (the core will probably overclock better and it will be around the same price)
The 6600, will probably perform about the same as a 9700 pro / 9800, it's a little hard to tell because of the platform differences.  The core will likely overclock pretty well.  If it becomes available in AGP, it will likely be an excellent option at that price point.  It will certainly perform better than the 128 bit 9800 Pro that is the best competition for it in the "new cards under $150" segment of the market.