I am not especially impressed with the Silverlight 2 local data caching and isolated storage facilities, which are not safe from access by unmanaged code and lack an actual database. (For many occasionally connected applications, you want a local database not only to cache information read from the remote database, but also to store updates to be sent to the remote database when the connection is restored. It's easier, more efficient, more secure and more reliable to do this with a local database than with a simple caching facility.)
On the other hand, I'm very enthusiastic about Silverlight 2 as an RIA. If I wanted to build a Silverlight Web application and needed a desktop version as well, I would lean toward separately compiling the application for WPF. I would expect to have more than 90% of the code shared between the two projects if planned properly.
The Silverlight plug-ins, Silverlight SDK, .Net Framework and Visual Studio Express Editions are free; Visual Studio 2008 Standard Edition is US$299 (US$199 upgrade); Professional Edition is US$799 (US$549 upgrade). Subscriptions range from US$1,199 for Visual Studio Professional with MSDN Professional up to US$10,939 for Visual Studio Team System 2008 Team Suite with MSDN Premium. Expression Blend 2 is US$499 (US$99 upgrade).
The first question to ask when picking a desktop RIA is how the application will be used, both as a Web application and a desktop application. Then list the features you need. Are those features present in the RIAs you are considering? Are there ways to add missing features? Are you looking to enable fully or occasionally connected scenarios?
Once you've got your questions ready, you can figure out which RIA is best for your needs.
Would it be better if you had separate desktop and Web applications that shared a common code base? If so, consider a combination of WPF and Silverlight.
Will your application have CPU-bound portions? If so, consider Silverlight and Curl Nitro.
Does your application need to run locally without a browser? If so, consider Air and Curl Nitro.
Do your developers already know WPF and the .Net Framework? If so, consider Silverlight. Do they already know Flash and Flex? If so, consider Air.
Do you already have an AJAX Web application? If so, consider Air and Gears.
Finally, ask yourself if you really need a desktop RIA at all. Sometimes building a second interface for an application is a relatively small effort, if most of the work is being done by a common back end or if most of the code is common to both versions of the application. In the larger picture, sometimes the advantages to users of having separate but optimized desktop and Web user interfaces may outweigh the costs and time involved.