For the cable, buy this one:
I have coded many cars with it and others have also reported that it is a quality cable. With the included adapter you don't have to worry about model years. You might find cheaper cables on eBay but you're taking a chance that it won't work.
Good luck and happy coding.