How to migrate accounts and data from one Android phone to another? I have a HTC Magic phone with Android 2.2.1 and I want to migrate all accounts (9), apps, sms, settings, etc... to a new phone with Nexus One.

Do you known some Android service/option or free app on Market to do it?

Thanks a lot!

UPDATE

I have migrated successfully :)

Old phone: HTC Magic rooted with Android 2.2.1
New phone: Nexus One rooted with Android 2.3.3


At first, backup google accounts with Titanium Backup Rooted
Then, backup SMS and Call logs with Life Saver 2
At end, restore in the new phone


Some problems with settings restore (Wifi, Bluetooth, apps, etc...).

Thanks!
If you are rooted, use Titanium Backup.  You won't be able to restore some things, since the Nexus One and HTC Magic have some very different system apps, but most should carry over.  After backing up with TB, copy /mnt/sdcard/titaniumbackup/ to your PC.  Then on the N1: install TB, copy the folder from your PC to the same location on the phone, then run TB and restore.

If you're not rooted, it's difficult to back up most things, especially all at once.  I'd rely on Google's backup for your list of apps and that sort of thing, as the other answer suggests.