I've been using Charles daily for more than a year now, and just realized that I've never reviewed it here. So to correct this omission: If you make your living creating Web applications, you REALLY should be using Charles. It takes all guesswork out of the interaction between server and browser -- simple GET/POST requests, SSL transactions, Ajax, XML, Rest, SOAP, Flash (even AMF calls), anything -- and shows you exactly what is transpiring when your users interact with your site or service.
The best part: It works regardless of which browser you use (in fact, depending on your network settings for a virtual machine, you can even debug using IE in a VM window).
You start taking the view for granted, and eventually you'll find you can also edit requests, optimizing your applications to ensure you only get/send the data you need.
Firebug, which I used extensively before trying Charles, will soon seem "quaint" -- and woefully underpowered.