Sorry for the "necropost", but I wanted to chime in here. My 07 had one key, and one fob when I got it. I bought 2 integrated key/fobs off of Amazon, and used a OBD2 reader with HS/MS switching and FORScan to erase the 6 "missing" keys in the system, leaving me one, and then used the same program to program the two new keys.
This does not work on the newer gens with the push button start. One reason it takes longer than most people think is that you have to be accessing the module onboard for something like 10 minutes before you can program a new key. This is a security feature to prevent someone from programming a new key and stealing the vehicle.