How to create Firefox extensions
To create extensions, you have two options that can be best described as an easy or simple way, and a hard way. As you may imagine, both methods have their advantages and disadvantages.
If you prefer the simple option, you can go ahead and create a userscript that can be loaded if add-ons such as Greasemonkey are installed or if the browser supports scripts natively. The advantage of Greasemonkey is that you do not have to deal with installing extensions in the browser so that you can concentrate fully on the script ahead.
It may also mean that you can offer the script for other browsers provided they support the functionality.
Downsides are that you have to repack and restart every time you modified your script (Update: no longer necessary if you are using the new add-on api).
Upsides are that you can do a lot more then you can with userscripts and you can distribute your extension a bit easier.
Also check out the links at the bottom of the tutorial if you get stuck, the forum he links to for example can be a big help.
Update: The tutorial website is no longer available. You can alternative check out the how to develop a Firefox extension at the Mozilla blog to get some pointers to get started developing extensions for the Firefox web browser. The detailed tutorial offers preparation suggestions and code examples, basically everything to get started right away.
Here are a couple of additional resources that you may find useful in this regard: