I remember the first jailbreak I did back in November 07. It involved lots of reading, downgrading to an old firmware, using the wellknown jailbreakme.com tif exploit, octoprep and a bunch of other stuff. Luckily I didn't have to unlock the phone to use it with another carrier, that would really have been a pain in the ass.
The iPhone-Hacker community has come a long way since then and I'm impressed on a weekly basis of the stuff they manage to push out on the web.

The newest and imho biggest thing they managed to create is a tool called "Pwnage";. To quote from the dev team webpage/wiki:

    • The software is a self contained application (for MacOS 10.4.x and 10.5.x) that allows all current models of the iPhone device to be "Pwned";. This term (in relation to this software) refers to the patching of the stock bootloader so that it will allow the execution of unsigned code and circumvent code-signing checks. "Pwnage"; only needs to be performed once to allow the additional features on the iPhone.
      • The application also processes and modifies existing Apple archives so that unique, custom rolled firmware bundles can be installed onto the "Pwned"; iPhone directly from iTunes.
    • These ".ipsw"; files can be created and patched by the application to allow third-party modifications such as activation, application installation, baseband modification, custom phone graphics etc.
    • The tool works automatically on box-fresh (OTB) 1.1.3 and 1.1.4 iPhones and requires minimal interaction from the user.
The tool also ships with an iPhone application that is automatically installed and run on first boot (if the user requests it) that is called "BootNeuter";, This will enable "Bootneutering"; of the iPhone baseband allowing custom firmware to be installed. Arbitrary secpacks and fls files will be accepted when the device is in this state, please refer to the application help file for specific information.
If the user has access to developer versions of the iPhone software (such as 1.2 or 2.0) provisions have been made to support this software and allow it to be used on any device. This will be useful for legitimate SDK trialists to install their software on more than one device, this should not be used unless you are an official member of the SDK programme.

They sure are a bunch of gnarly dudes :D

Just look at the youtube video below or download the