I've kept FireBug installed on FireFox since I first learned of it's existence. I didn't use it for much until today when I was appending elements to the DOM. Imagine if you will that you are the Sorceror's Apprentice and you are creating brooms to carry the buckets of water. Appending elements to the DOM is nothing like that...except that you can conjure DOM elements up and splice them in wherever you want.
The problem with appending elements to the DOM is that you have no way of seeing the HTML that makes up the resulting DOM since "view source" only shows you the HTML that was initially sent to the browser. Enter FireBug. It allows you to see the real-time HTML since it is "pinging" the DOM rather than reading from the first set of HTML that came down from the server.
Tomorrow I'll be implementing AJAX and I hear that's another area where FireBug kicks butt as troublshooting asynchronous server calls is yet another layer of hidden abstraction that FireBug monitors for you.