Ebay is a good place to start. You can usually find them cheaper there. The dealer just charged me $200 for a replacement key, and $30 to reprogram it. The new keyless entry remote was $100 and $30 to program.
The price might be cheaper at a normal GM dealer, as I went to the Cadillac dealership.
Also call some local locksmiths. Many of them have the correct tools to program the key/remote to your car, and some of them even have a mobile van and will go to where your car is, saving towing costs.