redsn0w(0.9.2): Only for jailbreaking
blackra1n(RC3): For jailbreaking + unlocking
blacksn0w: Only for unlocking
The two alternatives are
1. Use redsn0w to jailbreak followed by blacksn0w to unlock
2. Use blackra1n only
Now coming to the problems, various users reported that unlocking with blackrain followed by installation of some software (like SBSettings) from cydia lead to a condition where the phone is constantly in a recover mode loop after every reboot (reboot loop). I did not face this issue first hand as I did not install any software from cydia after unlock. I tried both the redsnow & blackrain approaches on different 3GS iphones. (Update: See the comments to this post which suggests a fix)
While the above condition might be true in some cases, I think that most people are missing one important point. If they jailbreak latest(>week45) 3GS iphones on 3.1.2 firmware using tethering (via USB), they have to use tethered boot also. This point is clearly mentioned in the redsnow software at the step after loading the 3.1.2 firmware.
They should use the same software everytime they have to reboot their 3GS iphone. After the unlock they would see the normal screen with the applications. But after reboot, it will go into recovery mode (screen showing itunes and USB cable). This is not DFU mode but people are using this term interchangeably with recovery mode. So, lets us ignore the terminology for time being and focus on how to fix it.
blackra1n:
1. Boot the phone. It will show screen showing itunes logo and a USB cable.
2. Just run the blackra1n software and click "Make it ra1n".
3. It will show a screen showing geohot's face.
4. Just wait, it will come out of it and will show the normal screen with icons.
redsn0w:
1. Boot the phone. It will show screen showing itunes logo and a USB cable.
2. Launch redsn0w and select the 3.1.2 firmware and click next.
3. It will show a warning screen. Click yes or no, depending on your iphone week number.
4. If you had already jailbroken, it will just show two options
5. Select "just boot tethered right now" and click next.
6. It shows a screen asking to hold the power & home button, but it is not needed. Do not do anything.
7. It shows the same recovery mode screen for some time and then will come out of it.
Happy unlocking!