I'm doing a migration-based upgrade of TFS 2010 where I'll be moving to new machines. The new machines will be running the latest and greatest software supported by TFS 2013.
My question is, if I backup the Tfs_Analysis database (currently on SQL Server 2008 R2 RTM) will I be able to restore directly to SQL 2012 SP2 CU1? Or should I install the same version of SQL on the new machine, restore the analysis database and then upgrade SQL in-place?
You should be able to restore your database directly on a newer version of SQL Server.
The only thing you need to check is that you're not going from 2008 Enterprise to 2012 Standard. If that's the case, you need to disable compression first on your 2008 machine.
Since Update 2 of TFS 2013, TFS also supports using SQL Server 2014. If you are going to the latest and greatest, I would choose SQL Server 2014. This will make it easier for you to upgrade in the future.
One thing to make sure is that manually backing up TFS databases requires you to use a marked transaction. This will let you synchronize all different databases so you can restore them to the same point in time. If you are using TFS Reporting you also have to make sure that you backup your encryption key.
You should be able to restore a 2008 R2 database onto SQL Server 2012, I have done it many times.
For due diligence, you could use the upgrade advisor (http://msdn.microsoft.com/en-us/library/ms144256(v=sql.110).aspx)
And also you should do a test restore first to ensure your software performs well on the new server.