Session Restore
Firefox 2 comes with a built in Session Manager.
Crash Recovery
By default Firefox will offer to restore your session after a crash, an automatic update, or when using the restart button from the Add-ons Manager. To disable it set browser.sessionstore.enabled to false.
Firefox keeps crashing after restoring a session
If a site's content caused your crash (e.g. a plugin is crashing) restoring your session may restore that page and cause Firefox to crash again. If Firefox keeps crashing after choosing "Restore Session," choose "Start New Session."
Always restore sessions on start
By default this is off, but can be turned on from the Options/Preferences menu. In the Main panel, under Startup set "When Firefox starts" to "Show my windows and tabs from last time. This will have Firefox restore your tabs and form data to their state when Firefox closed.
Restoring multiple windows
If you want Firefox to restore multiple windows you need to close Firefox via File -> Exit. Closing the windows one at a time will cause Firefox to only restore the last window that was closed.
Restoring a session once
In about:config set browser.sessionstore.resume_session_once to true and it will restore your session the next time you start Firefox, but not again.
sessionstore.js
Firefox stores session data in sessionstore.js located in your profile.