I know that Metro on both platforms shares a common “look and feel” and that WinRt makes use of XAMLand C# (or VB.NET) like Silverlight does on Windows Phone 7.
However I also know that WinRT is not Silverlight.
Therefore what is the process of creating an app that will work on both a Windows 8 tablet and a Windows 7 (or 7.5) Phone?
How close is WinRt to Silverlight?
The biggest potential problem I experienced is if you happen to have chosen to develop with XNA/Silverlight on the Windows Phone. In that case you either have to decide to completely rewrite the application or try out an XNA replacement such as MonoGame. Having gone that route myself I can happily say that, at least at this stage, MonoGame seems to support at least 90% of the functionality of XNA and due to the hard work of a few groups of developers and individuals it is now relatively easy to port over the application without too many fundamental changes.
Here is the link to MonoGames website http://monogame.codeplex.com/
If you are familiar with the MVVM architecture, you can think about it this way:
Following these directives you could have a very platform specific user experience, yet a very unified code base.
I hope this adds valuable information for you in addition to the great answers you already got from the other guys.
This answer is the same for WP7 & SL.
WinRT is just not the .Net framework, unfortunately. And that's WP7 & SL.
Having said that, if WP7 <-> W8 is a 7, WP8 <-> is a 9.9!
You will NEVER get 100%, by the way. Different form factors need different XAML, at the least.
Just remember, design with MVVM!
Despite certain people in Microsoft claiming it will only require changing a couple of lines of code...
The only possible answer to how difficult it will be to port an app is IT DEPENDS!
The parrallels are that:
beyond that it will depend on the app.
You can't create an app which will run on both. At the very least you'll need to recompile as the 2 platforms will require targetting different versions of the .net framework.
Update:
Microsoft have provided some early stage guidance on making such a port. It includes some namespace and API mappings.
Looking at the APIs, and ignoring differences in user experience, I'd say: not difficult but not trivial. Or, another way, more difficult than going from WPF to Silverlight but less difficult than WinForms to WPF.
You can check out http://msdn.microsoft.com/en-us/library/windows/apps/br229571(v=VS.85).aspx and see if that helps.