redsn0w is the most popular tool for jailbreaking and modifying your iOS devices. The latest version includes a number of features:
restore from any 5.x iOS to any other (up, down or the same) 5.x iOS on all devices as long as you have the correct blobs (see more below)
Cydia now included in the tethered 6.0 jailbreak on A4 devices
automatically "Just Boot" tethered when qualifying A4 device connects in DFU mode
untethered 6.0 jailbreak on old-bootrom 3GS
untethered 6.0 hactivation on any 3GS or iPhone4
directly restore pre-A5 devices to earlier firmware -- no more complicated 15-step how-to's with stitching, iTunes errors, and "hosts file" concerns
fetch new signed blobs for any IPSW (present or future -- no redsn0w update required) using Extras->SHSH Blobs->New
block the BB update for any 3GS or iPhone4 restore (past, present, or future -- no redsn0w update required) using Extras->Even More->Restore
deactivate any iPhone, useful for testing your "official" unlock status through iTunes. (Please only deactivate your own iPhone!)
activation status shown on "Even more" page
significantly more (very nerdy) info returned by "Identify" button when device is in Normal mode
tethered jailbreak of ATV2 supported (but the only thing available for it is the SSH2 custom bundle available here -- no Cydia yet. Must use "Select IPSW" for tethered boot of ATV2 for now).
auto-exit WTF mode for older devices with broken buttons
any time a set of blobs is fetched remotely (from Apple or Cydia), redsn0w also saves them locally (and will check there first if you click "Local")
for your future restoring convenience, you should also submit all of your past and present TinyUmbrella blobs to Cydia if you haven't done so yet. Resubmitting is okay and won't cause conflicts.
What’s new in version 0.9.15b2
Updated on Oct 29 2012
Version 0.9.15b2:
Fixes a few issues for 3GS owners: old-bootrom awesomeness is no longer forgotten directly after a restore, and iPad baseband upgrade/downgrade support is fixed (same production date cutoffs apply!). If your 3GS is currently tethered at 6.0 even though you have an old bootrom, just re-run redsn0w’s Jailbreak step (no need to restore). Don’t forget you can add some pizzaz with your own boot logo or a nerdy verbose boot.