While I have mixed feelings about Silverlight as compared to AJAX, HTML 5, Flash, and Flex, I still think it's great technology, and I wouldn't hesitate to build a Silverlight user interface, a Silverlight media viewer, or a Silverlight graphical display. I think that anyone who has had exposure to Windows Presentation Foundation and is comfortable working with Visual Studio and Expression Blend can easily pick up Silverlight.
Up until recently, it has been difficult to figure out how Silverlight works. That has changed with the publication of "Essential Silverlight 3" by Ashraf Michail. Michail is "a Silverlight architect who has guided Silverlight from its beginnings through the current version."
[ For a closer look at Silverlight 3, see "First look: Microsoft Silverlight 3 challenges Adobe AIR" ]
"Essential Silverlight 3" covers plenty of how-to information, but my favorite parts of the book are the "Under the Hood" sections that explain the runtime internals. OK, I'm a geek. Nevertheless, if you want to write applications that go really fast, you need to understand how your code will translate to hardware operations. For example, it might be tempting to enable GPU-accelerated rendering, one of the new features of Silverlight 3, but as Michail explains there are situations where that actually slows the application down. It might also be tempting to improve the smoothness of the rendering by setting the RenderAtScale property for an animation, but this increases the memory requirements for the cached surface texture by the square of the value.
Disclosure: I wrote the back-cover copy for this book and used to be the series editor for the Microsoft .Net Development Series.