I got really confused by all the jailbreaking program there is, so I'm going to list them out and see if I get them right.
Sn0wbreeze - allows user to update firmware and jailbreak it, while preserving the baseband for unlock
Requirements: Jailbroken iPhone? (read on websites that iPhone needs to be jailbroken previously)
PwnageTool - MAC version of sn0wbreeze
Requirements: Jailbroken iPhone?
tinyumbrella - same as sn0wbreeze, but for iPhone 4 ONLY
Requirements: iPhone 4
http://www.redmondpie.com/update-iph...and-to-2.10.4/
GreenPois0n/Limera1n/spirit - jailbreaks iPhone
Requirements: iPhone needs to be on most updated firmware
Ultrasn0w/Limesn0w - unlocks iPhone
Requirements: jailbroken iPhone
bootrom (for 3GS) - new bootroom requires tether, old bootroom can use untether
I hope I'm getting the programs right