Jailbreakers: You can either follow the "iTunes Users" instructions, or install OpenSSH via Cydia and use something like scp, WinSCP or Fugu to copy "/var/Mobile/Library/SMS/sms.db" to your desktop.
iTunes Users: If you have a recent backup of your iPhone, or haven't received any new SMS you'd like to move to your Android phone since the last backup, you can skip the first step:
make a backup in iTunes (right-click your iPhone icon in the left pane)
depending on your operating system, go to the folder
Windows 7/Vista: "C:\Users\[USERNAME]\AppData\Roaming\Apple Computer\MobileSync\Backup\"
Windows XP: "C:\Documents and Settings\[USERNAME]\Application Data\Apple Computer\MobileSync\Backup\"
Mac OS X: "~/Library/Application Support/MobileSync/Backup/"
Linux: "/itunes/?/you're/kidding/me/right/?" (seriously, i have no idea if that's ever gonna happen)
if there's more than one folder in there, look for the one which doesn't have a timestamp (-YYYYMMDD-HHMMSS) at the end, and open it
copy the file "3d0d7e5fb2ce288813306e4d4636395e047a3d28.mddata" to your desktop
older iTunes versions use the extension ".mdbakup"
on Mac OS X Lion the file doesn't have any file extension
optional: rename "3d0d7e5fb2ce288813306e4d4636395e047a3d28.mddata" to "sms.db", if you're a neat-freak
Connect your Android phone to your computer and enable the USB Mass Storage mode, or put your phone's SD card into a card reader. If it doesn't exist yet, create the folder SMSBackupRestore on the SD card and copy the downloaded XML into that folder.
Now unplug your Android phone from USB, or disable USB sharing, otherwise you won't be able to access your phone's storage from SMS Backup & Restore.
Install SMS Backup & Restore (Android Market Link) on your Android phone, launch it, tap on "Restore", select the XML file you copied over and voilá! (that's french for "tada!")
Step 4: Give Feedback (optional)
Please check if all your messages are there and if everthing looks fine. I'm happy to help if anything is not working the way it was supposed to, but for that i need
to know that something didn't work as expected. The easiest way to get in touch with me is via email. This also, or rather especially, applies
to the App - i'm a total beginner with Java, but i got that far that i wrote this App, and in all my testing it behaved as intended. If you think otherwise,
get in touch with me before giving it a bad rating on the Android Market, and i'll try to sort out whatever is wrong with it. Thanks!
Yes, i'm that bold, i'll say it again: if you found this tool useful, support me - anything goes!