iH8sn0w has released Sn0wbreeze 1.6 which will allow you to jailbreak iPhone 3G, iPhone 3GS and iPod Touch 2G running iOS 4.0 on Windows. For those who don't know Sn0wbreeze is a port of PwnageTool on Windows through which you can jailbreak your iPhones and iPod Touches without upgrading your baseband. Just like PwnageTool, Sn0wbreeze will create a custom IPSW file for your device which you can restore using iTunes on Windows.
Before Sn0wbreeze 1.6 iPhone 3G and iPod Touch 2G users who were on Windows could jailbreak their devices with Redsn0w 0.9.5b5-4. iPhone Dev Team released PwnageTool 4.0 for iPhone 3GS users but it was only for Mac. Now with the release of Sn0wbreeze 1.6, you can create custom IPSW file for iPhone 3GS on Windows also.
Remember: In order to jailbreak iPhone 3GS with Sn0wbreeze 1.6, you must have an iPhone 3GS with "Old BootRom" and which is already jailbroken on iPhone OS 3.1.2 with any tool other than Spirit. Moreover Sn0wbreeze 1.6 will work with iPod Touch 2G (non-MC models) only.
Update 1: How To Jailbreak iOS 4 on Windows with Sn0wbreeze 1.6
Update 2: How to Jailbreak iOS 4.0 on iPhone 3G & iPhone 3GS with Sn0wbreeze 1.6
Update 3: [Update] Sn0wbreeze 1.6.1 Released! Download Now
Update 4: Fix 16xx Errors During iOS 4 Custom FW Restore Using iReb
Update 5: Sn0wbreeze v1.7 - Jailbreak iOS 4 on iPhone 3GS (New Bootrom) / iPod Touch 2G (MC Models) & iPod Touch 3G