Firefox is great for web development because there are many useful plug-ins, but ideally you'd want a second Firefox instance for fast regular web browsing. This article describes how to configure multiple Firefox 2.x profiles, and how to run multiple profiles at the same time.
Background
Anyone who has been writing rich web applications knows that addons like Firebug, Clear Cache, Event Spy, Leak Monitor, Web Developer, the Javascript Debugger, and even Yahoo's YSlow are essential to building really good applications. These tools, while useful, also tend to bloat an existing Firefox installation. When I'm doing my daily web application development, I also surf the net a lot looking for references to things. I don't necessarily need these tools in my primary browser instance and I certainly don't my browser instance affected by some dumb thing I do in my code that causes either the browser to crash or the browser to close.
The Profile Manager
Firefox has a neat, if very underutilized, feature that allows you to have more than one Firefox profile in your account. In brief, in Firefox, profiles allow you to separate your browser settings, addons, and themes between your profiles. They were originally intended to allow multiple users to share a single account on a machine and to access Firefox through the profile selection. These profiles are created and removed through the Firefox Profile Manager. You can start the Profile Manager from the command line by doing the following (assuming you know where Firefox is located on your system):
Windows
"C:/Program Files/Mozilla Firefox/firefox.exe" -ProfileManager
Ubuntu Linux 7.10
/usr/bin/firefox -ProfileManager
You need to make sure you don't have an existing Firefox browser already started before you enter that command. If you already have an instance of Firefox started, the Profile Manager won't load. Anyway, once the Profile Manager loads, you can create, rename, or delete profiles.
Profile Locations
Profiles are stored in different locations depending on the operating system. These locations are:
Windows
%USERPROFILE%\Application Data\Mozilla\Firefox\Profiles
Linux
~/.mozilla/firefox
Setting Up a Second Profile
What I typically do after a fresh install of Firefox is start Firefox normally the first time. This creates a default profile for me. I then exit Firefox and start it with the -ProfileManager flag from the command line and create a 2nd profile. I usually call the second profile "Development", but you can call it anything you want.
So let's step through this. We'll assume you already have a default profile created and running. First, exit out of Firefox. Then start Firefox from the command line using the -ProfileManager command line option. Create a new profile and call it Development. Then exit out again.

At this point you have 2 profiles. When you start Firefox, the default profile will load. You can actually tell Firefox which profile is your default profile by editing the profiles.ini file in the Mozilla directory. We're not going to worry about this, though, because we're going to start Firefox with explicit profiles.
Update Desktop Shortcuts
Now that you have your 2 profiles set up, modify the shortcut that starts your normal Firefox instance. In both Windows and Linux you'll have to right click the shortcut and click Properties. Each has its own shortcut properties editor. On Windows, edit the "Target:" field and on Linux edit the "Command" field.
Create the First Shortcut
You'll want something similar to this:
Windows
"C:\Program Files\Mozilla Firefox\firefox.exe" -P "default"
Linux
firefox -P "default"
What the -P flag does is tells Firefox to start with the explicitly specified profile.
Create the Second Shortcut
Now for the real magic. Copy-and-paste the first shortcut to create a new shortcut. Call the new shortcut "Firefox - Development" or something similar. Edit the properties of that shortcut and in the Target: or Command field put in the following:
Windows
"C:\Program Files\Mozilla Firefox\firefox.exe" -P "Development" -no-remote
Linux
firefox -P "Development" -no-remote
Now you have 2 shortcuts: one to the development version, and one for the 'clean' version. If you want you can change the icon to make it clear which shortcut is the development version.
The -no-remote Flag
What the -no-remote flag (vaguely) tells Firefox to do is start a completely new and segregated Firefox process. This process will have no attachment to your original process and therefore is a complete sandbox for development and testing: if your Firefox development instance crashes, your regular Firefox instance will still run.
You can also add the -no-remote flag to the clean Firefox version, but it's less likely that this version will crash. Also, -no-remote makes it impossible to start new browser windows by clicking on the desktop shortcut: this is because Firefox cannot start multiple -no-remote instances, so if you use -no-remote, you should open a new window with CRTL-N or via the File menu.
Conclusion
Now, start both your main Firefox instance and the Development instance: You'll have 2 separate Firefox processes running. In the development instance, add whatever development tools you want to it. These will remain segregated from your default profile. Typically I remove all development addons from my default profile and put them all into my Development profile. When I need to do development or debugging work, I load up the development profile and use it for my development work. For everything else, I use my default profile.
I'm curious to hear more about your development setup: please share your own tips and tricks in the comment section below.

Comments
Hey, I can also recommend
5 April, 2008 - 13:03 — GrauwHey,
I can also recommend Portable Firefox [1], if you want to run different versions of Firefox. For example, I have Firefox 3 beta 5 as my default system browser, and use Portable Firefox 2.0.0.13 for testing purposes.
~Grauw
[1] http://portableapps.com/apps/internet/firefox_portable
Indeed
6 April, 2008 - 07:55 — DaveFirefox portable is nifty. I don't use it, but I know some folks that do.
Did you know you can also use regular profiles with other versions of Firefox? I have a profile called "DaveFF3" that is my Firefox 3.x beta profile. It allows me to test FF3 without messing around with my existing profiles. Anyone who's beta tested the previous FF betas knows just how annoying it can be when it 'upgrades' one or more of the plugins running in your regular profile. When you revert back to the older version of FF, there's the periodic plugin that doesn't work anymore.
I also use profiles to test out plugins. If things go well, I then incorporate them into either my regular profile or my development profile. Gives me a little sandbox to test them in rather than having to fire them up in my VirtualBox virtual machine and testing them there (which also works, but it's a little heavy.)