It takes a fair list of skills and tools to build Firefox extensions. This is a broad overview of those skills and tools to help you on your way to building great extensions.
Introductions to Building Firefox Extensions
If you are looking to build Firefox extensions then this is the place to start. We will be looking at all the skills required to build extensions and the tools you will use. We will also discuss the different types of things you can make extensions do, but first off, why would you want to build Firefox extensions in the first place?
Not only is Firefox one of the most widely used internet browsers, but Firefox is platform-neutral. This means you can create extensions that will work on any platform that can run Firefox! This is one of Firefox's most important attributes. It means extensions build for Firefox will work on a Mac, Windows, or Linux. Anywhere you can install Firefox, your extensions will work.
Add-ons can be made to do all kinds of things from site authentication to a full fledged FTP program. If you need a browser to perform a task that it doesn't normally do, then the best way to get the job done is to build an extension.
What Can Xul Do?
Xul can be used to do all kinds of things when building extensions. You can create drop-down menus, toolbars, pop-up menus and keyboard shortcuts. The different types of extensions seems limitless, from simple tabbed dialog boxes to full toolbars.
Although Xul can create extremely complex Firefox add-ons, this is only touching the surface of what can be produced using Xul. It can also be used to develop stand-alone programs that don't require a browser. They are installed via a Xul created exe file. You can also design web applications that are completely run server-side. Firefox will run the program only by going to the its URL. You may never need to build anything beyond Firefox extensions, but Xul can do so much more.
Exercises and Other Resources
Now that you have a basic grasp of what is involved in creating Firefox extensions, you will probably want to take your knowledge to the next level.
There are a lot of resources out there to help you learn how to build extensions, but the Mozilla Developer Center is the major hub. This site covers all aspects of Firefox development but it may be too broad for what you are looking for. For tutorials specifically about building extensions, check out Lifehacker's basic tutorial or Roachfiend's awesome “Hello World" tutorial.