When you purchase a new Mac and are ready to migrate your data, applications, and user accounts to it, Apple has its Migration Assistant that should work just fine for most people; however, sometimes you can run into problems with the Migration Assistant, so there are several other options that can also do the job.
Supported migration options
When using the previous computer as the source for migrating data, the most common option is to follow the instructions in Migration Assistant. This process involves booting your old computer into Target Disk mode and then connecting it to your computer via a FireWire cable, though modern systems running Snow Leopard can use the Wi-Fi or Ethernet. The new migration assistant will detect your old installation and copy user accounts, data, and settings to the new computer.
Drive clones can be used as migration sources because they should be identical to the boot drive. If you have a spare disk available, first create a backup clone of your old computer's boot drive, and then attach the drive to the new computer when running Migration Assistant. Migration Assistant should then list the drive as an available migration source.
The final option that Migration Assistant supports is the use of a Time Machine backup as a source for your personal data. This requires you to have an external Time Machine drive accessible to the new system, which can be used by Migration Assistant to copy available applications, settings, and other data to the new computer.
Unsupported migration options
Unsupported options for migrating in OS X basically revolve around using drive cloning. Instead of putting your old computer into Target Disk mode and attaching it to your new system to copy files, you can reverse this and put the new system into Target Disk mode and connect it to the old system. From here, use a cloning utility to clone the old system to it, and then restart the new system to boot off its internal drive.
You can also boot the new system to an external clone of your previous computer and perform the same actions to clone back to new system's internal drive. This is similar to cloning directly from the previous computer; however, it uses the external drive as an intermediary device and boots off it when doing so.
Lastly, you can boot from the OS X installation DVD and use Disk Utility to erase the new computer's hard drive. Then, you attach a Time Machine backup drive from your old system and use the "Restore from Backup" feature in the installer's "Utilities" menu to restore the backup to the new machine.
Pros and cons
Using the previous computer as a data source
Migrating directly from the previous computer with Migration Assistant is the most supported method; however, be sure you have a full system backup before you use this method. There is a chance that if something goes wrong your data could be lost or corrupted when connected to another system in Target Disk mode, since the drive will not have the same permissions restrictions as when you are booted off it, and any data can be easily erased. You can get around this by using another drive as an intermediary clone to migrate from.
Using Time Machine as a data source
When using a Time Machine backup as a data source, you have the option to choose any available full system backup on the drive as point to migrate from. The drawback to this method is that you might not have everything backed up since Time Machine can be configured to avoid certain items.
Using a cloned drive as a data source
Using a cloned drive to migrate your data using Migration Assistant can be safer than using the old computer directly; however, if you are cloning directly to the new computer then there is no advantage to using the external drive over using your old computer as a data source. Booting the new computer into Target Disk mode and then cloning to it from your old system is the same as creating an external clone, and doing so would be redundant. Nevertheless it can be done for situations where you cannot get the two systems close enough for a FireWire cable to reach.
Which method to choose
Ultimately all these methods should work, and differentiating between them is just a matter of opinion more than what is "best." Frankly, they are all perfectly fine to use. However, since a basic migration from the old system in Target Disk mode or from a Time Machine backup is supported by Apple, I recommend that people try these methods first. Nevertheless, do make multiple backups if you can, since having them would allow you to easily try the other options in the even something goes wrong with the first attempt.
Some people may wonder if cloning to a new system is wise, arguing that the different hardware configurations could result in different installed components for each system. OS X does not install different components on different Macs besides user-selectable options like printer drivers and fonts, so cloning the system should transfer the OS installation just like installing off the DVD.
Hardware-specific configurations are done at boot-up, and these are then stored in the boot cache so do keep in mind that when you clone you may be copying the boot cache to the new system; however, this should not adversely affect anything. At most it will result in a few initial slowdowns while the system reconfigures the boot cache, but boot caches can be forced to reconfigure by manually clearing them. Therefore, if you decide to clone directly to the new system you might want to boot to Safe Mode initially to ensure the boot caches get flushed. Additionally you might also consider running general maintenance routines to clear user caches and other temporary files, which the system will then rebuild on subsequent boots.