If you are not interested in unlocking your iPhone (i.e. using your iPhone overseas or with another company's SIM card) jailbreaking is pretty simple.
I jailbroke my iPhone 4 after upgrading it from iOS 4.1 to iOS 4.3.2 just the other day.
The concept is this (on the Mac):
1. Upgrade to iOS 4.3.2 in iTunes the usual way.
2. Download the iOS 4.3.2 firmware separately so you can use it with the jailbreak tool.
3. Download the jailbreak tool RedSn0w latest version (for Mac).
After connecting your iPhone to your Mac, double click on RedSn0w. RedSn0w will ask you to point to the iOS 4.3.2 firmware you downloaded in step 2 and do the rest for you. You just have to follow the instructions when running the program (e.g. now hold the power button and home button, now release the power button, etc.)
Details are here:
Again, as it warns there:
But if you are just interested in jailbreaking, and not interested in unlock (which you can't do if your modem software is not one of the older compatible baseband versions mentioned in the link above anyway) this is an easy way to jailbreak.
Unfortunately I have no information on unlocking. I used my unlocked iPhone 3G last summer in the U.S. But I have the sense that unlocking has become more and more difficult. I don't even know what is in the works.
I think the next cell phone I get will be a factory unlocked phone - whether it's an iPhone or an Android.
"From what I understand Softbank (& all other Japanese cell infrastructures) run on CDMA networks."
Softbank and docomo are hybrid networks cdma/GSM, au is CDMA.
As Doug said, the current baseband (BB) is not un-lockable by software means. Only the 01.59 BB is unlockable at the moment (the BB that came with iOS up until 4.0.2). If you are on 4.0.2, you are in luck. If anything over that, than not so much. There might be a chance in the future something for >01.59 being unlocked, so it's a good idea to preserve the BB using PwnageTool, but it's much easier to just follow Doug's steps... (though 4.3.3 is out now and I don't think redsn0w has been updated yet).