I'm confused on what the difference is between Progressive Enhancement and Graceful Degradation. To me they seem like the same thing.
Can you please explain to me the differences between the two and in which situation I would use one over the other?
I find it tends to be attitudinal - are you saying "okay, my site works with Lynx, users can do everything I want them to be able to do, now lets add some panache", or are you saying "okay, my site works in Firefox, now lets try to fix it for people not willing to use that/who turn off javascript/etc"
If your site looks equally good on all browsers, but certain browsers get, say, dancing ponies because they support dancing ponies, then that's Progressive Enhancement. It works in all browsers, but certain browsers get something extra. Usually that term is applied to certain Javascript features that may enhance usability beyond "raw HTML".
If your site only looks the way you intend to on browsers that fully support, say, CSS3, and IE8- will display the same page without, say, rounded corners, then that's Graceful Degradation. The site is really meant for state-of-the-art browsers, but it's still usable in older browsers, just not as fancy.
In the end, they're really the same thing, looked at from two different perspectives.