Can you provide any additional information regarding your experience?
I currently have a 3gs and I'm still up in the air. I can't even find an ATT store with the SGS2.
If you like to manage your music library on your phone, listen to podcasts, and have access to a wide array of apps, stick with the iphone. If buggy software doesn't bother you, the SGS2 may be better.
SGS2 vs 3gs:
+The screen on the SGS2 was awesome. You just have to see it in person.
+I definitely preferred the Swype keyboard over the iphone keyboard. Way easier to quickly send messages without errors and fun too. If you don't know what swype is, it's basically a qwerty keyboard that you swoosh your finger between the letters without releasing and the software guesses what word you were trying to type based on the letters you pass over. In my short experience it worked 95% of the time and was way less error prone than iphone's error correction.
+It was much easier to browse the web, as not only the screen is larger but the browser runs full screen without interface bars at the top and bottom.
+push email for gmail. minor convenience over iphone fetching.
~SGS2 is even lighter and thinner than the iphone4. It's substantially lighter than the 3gs. At first this seemed like a pro but honestly I think I like the sturdier feeling iphone. I feel like I'm more prone to drop the SGS2, due to its lighter weight but bigger surface area.
-android app store is surprisingly sparse compared to apple store. Not a big selection. A pro to this though is that many paid apps are free-with-ads. A negative though is that apps that do cost money are often $5 or more.
--volume control. the SGS2 volume control is schizophrenic and a pain to manage. The silent mode doesn't really silent anything. If you bump a volume button then you are no longer in silent mode any more. Furthermore - and this is hugely lame - the silent mode doesn't silent "media", e.g. music or apps. Only alerts and rings. So even if the phone is in silent mode, if you start up an app it will blare out at whatever the previous volume level was out of the speaker. There's no way to reduce the volume or even know what it is at any time before the sound comes out - apparently you can only change the media volume while something is playing. And it doesn't differentiate volume modes whether headphones are plugged in or not. That is, unless you pay ~$8 for a third party volume control app.
--default music player worthless. If you have itunes-managed music library, it won't work at all with the default music player. It will confuse genre and album tags, causing everything to be mixed up. Only way to fix it is to buy a third party app for ~$8. Also, if you listen to podcasts, you'll need to buy an additional separate $8 app to get any sort of functionality in that regard.
--screen gets hot. I guess this is why Samsung has not brought out a full-sized computer monitor OLED yet - heat. This thing cooks in your hand and will automatically limit max brightness to half after about 2 minutes.