We are doing exactly this at the moment in our company - decommisioning servers and moving the databases to a new infrastructure. We use a DNS alias to point to the SQL instance - the only downside is that the SQL instance must be configured to use static ports. Once this is done you can connect to a SQL instance using the following address:
servername,port - this way you do not need to know the instance name. Once you have configured your application with to connect with the DNS alias moving your databases is easy - just create a copy of the database and change the IP Address that the DNS Alias points to.
There are a couple of downsides to this approach; firstly, configuring SQL Server to use static ports requires a restart of the SQL Server instance; secondly, all servers that are to take part in the moving of databases must be configured to use the same port (otherwise you would need to reconfigure the client each time).
We primarily use this for DR to be fair (although it is making the migration to new infrastructure easier) and the approach is pretty robust. When failover occurs an automated job kicks off to redirect all of the DNS Aliases to point to the new server. There will be a slight window of failure within the application while the new addresses are replicated across the domain controllers but this tends to be fairly small.
I hope this helps you.