How do I write a Firefox Addon?
We tried to make http://developer.mozilla.org/en/Extensions answer all those questions. The first three links in the documentation section are about getting started (that includes Adam's link). The newsgroup and the irc channel in the Community section are the official discussion boards.
Mozilla is very complex, so any kind of API guide would be overwhelming and hard to write. So your best bet is to check the code snippets page (also linked from the MDC Extensions page), then search MDC/google, then ask in the forums.
The official page listed above is good, but this is the most useful page I have found to get started:
http://blog.mozilla.com/addons/2009/01/28/how-to-develop-a-firefox-extension/
More recent official post
And I found starting with an extension generated from the Add-on Builder to be a great start also. You go right to tweaking JavaScript and seeing what happens: https://addons.mozilla.org/en-US/developers/tools/builder
You are also really going to want to be able to debug, you have two choices for that: ChromeBug - Which gives you FireBug for Firefox Extensions. WebStorm, but you need to use the early-access version and it currently requires a patch I wrote.