There is a lot involved in "migrating an application from one server to another" -- there's really no way we can answer this comprehensively for all use cases. YOU can answer it pretty comprehensively for your setup though, if you approach it systematically:
- Make a list of everything your application needs.
- Web Server?
- Database Server?
- Mail Server?
- Scripting language (PHP, Ruby/Rails, Perl, something else)?
- Ancillary programs (ImageMagick, etc.)?
- Make a list of important configuration items.
- IP Address, Netmask, Gateway, etc.
- DNS Servers
- Application-specific items (temp directories, etc.)
- Take the lists from (1) and (2) and write an outline of the migration.
This should include things like installing and configuring any software/packages you need, dumping and loading the database, etc.
- TEST THE MIGRATION
Copy everything over just like you would if the server was going to go live, but don't make it live. Stick it on an isolated network when you're done and test everything.
If you have a standard test procedure for your application you should run it on the migrated server.
- If everything didn't go perfectly, goto (3), update (1) and (2) then revise your plan.
- When the test migrations go perfectly, do the actual migration.
Depending on how complex the migration process is this might just mean dropping and reloading a database, or you may want to wipe the machine and do it all from scratch.
When you're done you'll have a checklist for your particular application, in your particular environment. That checklist will probably evolve as you develop the app, but it can serve as a starting point in 3-5 years when you have to migrate again.
Other things to consider include implementing configuration management ala Puppet or Chef.
(If you're going to be "the sysadmin" you should be considering them, otherwise pass them on to the responsible person/team.)