What is different between SQL-Server versions 2008R2 and 2012
A few things you'll want to watch out for:


Changes to memory manager mean some changes to some dynamic management views - https://sqlblog.org/2011/01/08/sql-server-v-next-denali-changes-to-performance-counters
fn_virtualfilestats no longer takes -1 for parameters - https://sqlblog.org/2011/06/28/sql-server-v-next-denali-breaking-change-to-fn_virtualfilestats
you may no longer be able to identify system databases simply by DB_ID between 1and 4 - https://sqlblog.org/2011/07/08/sql-server-v-next-denali-breaking-change-to-system-databases-database_id-db_id
Temp tables now get negative object IDs, so make sure you don't have code that checks for object id > 0 - https://sqlblog.org/2010/11/09/sql-server-v-next-denali-breaking-change-to-temp-tables
sys.dm_exec_sessions has a new column, authenticating_database_id


For an official list (it doesn't include all of the above items, and there may be others that aren't coming to mind):

http://technet.microsoft.com/en-us/library/ms143179(v=SQL.110).aspx

You may also want to check the discontinued features page:

http://technet.microsoft.com/en-us/library/ms144262

And also run the Upgrade Advisor against your instance, this is exactly what it's for:

http://technet.microsoft.com/en-us/library/ms144256.aspx