I thought I would share my experiences of downgrading a 1G iPod Touch from 3.0 (commercial) to 2.2.1. It was certainly very painful and hopefully I can save someone else some pain.
Despite what you may read it can be done with Xcode from the Organizer window. Firstly attempt to restore the 2.2.1 firmware, it will be extracted and then this message will be displayed.
"ERROR: Cannot restore older epoch without using DFU"
The phone will now display the connect to iTunes screen that it shows when you register the device. This is what threw me because I thought you had to now connect the phone to iTunes. However, all you have to do is put the phone into DFU mode. This involves an arcane sequence that is described about 20 different ways on the Internet. What worked best for me is hold down power and home for about 10 seconds and then release the power button and keep holding home until the device is recognized.
When XCode/Organizer recognizes your device in DFU mode it will be listed as Device. Now select the firmware again and click restore. The device's screen should go white which is a sign you are on the right track. If things seem like they have stalled and the firmware select box is enabled then select the firmware again and then click restore. I think I had to do this about three times.
I used XCode 3.1. The key is to get your device into DFU mode, if my instructions don't work there are lots of videos on YouTube on how to get DFU mode as it is a key part of jail breaking.