Upgrade, means in-place upgrade commonly, it's very easy to implement because vendor will provide a wizard to lead you to finish the upgrading process.
Sometimes, software vendor need to make significant changes to the software's infrastructure (for example, from Microsoft Exchange 5.5 to Microsoft Exchange 2000), these changes may caused by big new features, integration between products, acquisition etc. Then it will be much difficult to do a in-place upgrade, migration may be the best choice in this case. the migration wizard will transfer the configuation and user data from the old system to the new system, move all items from the old system to the right place of the new system.