Establishing an architecture is a time-consuming task and adds complexity to our project. In exchange, we get some benefits as follows:
We can give access of the code repository to a graphic designer so that he can create or modify a window without any knowledge about development
It gives us a possibility for our business logic to be tested via automatic unit tests
It is easier to make modifications since, for instance, a change in the UI does not have to affect the business logic
It permits reuse of some functionalities in different parts of the app, or even in other apps
Talking in "ilities" terms, we get improvements in testability, productivity, maintainability, and readability.
Focusing in Silverlight, we have seen how the MVVM pattern allows us to declare the presentation logic in a declarative way, and how libraries and frameworks such as MVVM Light Toolkit and MEF are perfect travelmates.