The pattern is identical, but the implementation may differ. Silverlight is missing some crucial pieces such as commands that mean you may need to put a little more effort into achieving an MVVM solution. However, at the end of the day, you'll still end up with M's, V's, and VM's.
As Gabriel (and Reed) mention, Silverlight is a slimmed down version of WPF.
WPF is intended primarily for desktop applications, and it has advanced features around layout, animation, and data binding that Silverlight does not yet have. WPF can be delivered via a browser, but it does not run as a browser plug in, and so cannot interact with any other content in the browser. It is possible to create WPF applications that host WinForms controls and windows - this can make it easier to transition a portfolio of existing WinForms code (if that matters to you). WPF also has more sophisticated 3D capabilities than Silverlight - though not by much.
Siverlight, is available on multiple platforms (like Linux and OSX) via the Mono runtime and the Moonlight port of Silverlight. Silver light can either run as a stand-alone app, or within a browser environment - which makes it possible to create web-based applications. When run as a browser-based plugin, a Silverlight app can interfact with the content in the browser, and can be displayed side-by-side with HTML. You can also manipulate a Silverlight app using JavaScript - creating a near-seamless programming environment. There are some limitations in Silverlight apps - for instance, WCF calls are all asynchronous (due to the Silverlight/Browser threading model). Also, not all of the .NET framework SDKs are available to Silverlight apps.
Both technologies are very similar in that they use a combination of markup and code to deliver functionality. To choose between them, you need to decide whether you are building a browser-based or stand-alone application, whether you want to be portable to other platforms, and whether you need the full suite of libraries available in .NET.
On the development tools front - the best tool out there IMHO is Expression Blend - it has an elegant and powerful UI for visually creating either WPF or Silverlight user interfaces. It also integrates with Visual Studio - which is still a superior development environment (Blend has limited code editing features). There are also tools like Expression Design and Expression Encoder to help with creating graphics and manipulating video for use in both WPF and Silveright applications.
Best Answer
It sounds like you just need a quick overview of the technologies you have outlined there.
WPF: Windows Presentation Foundation - a new graphical rendering system for building interfaces based on the XAML markup language.
WinForms: Windows Forms Applications - Visual Studio's classical drag-drop GUI.
Silverlight: a Web Application framework - usually used with WPF, very similar features
ASP.NET & MVC: ASP.NET is the web application framework used in conjunction with C# and VB.NET used and MVC stands for Model-View-Controller - a design pattern that has actually been around for ~30 years
Without knowing the true intricacies of your framework, what you need it to do, what limitations you have - I can't say X would be better than Y - especially seeing as WinForms and WPF is used for desktop applications, and Silverlight, ASP is used for web applications - unless you're thinking of linking these in with each other? You haven't given enough information in your question.
However, the best for investing in the following 5 years? The most recent and still in development technologies are WPF, Silverlight and the ASP.NET MVC - but nobody has a crystal ball to say whether these will still be alive, kicking, and technologically advanced in 5 years time.