なんかMVVMの解説サイトを読んでも M-V-VM を分ける簡単なことしか乗ってないので、
サンプルアプリ案件ベースの事例ってないかなぁ

View - ViewModel 間はバインディング、コマンド、メッセージング(イベント)を使ってやり取りする、
Viewは画面に表示することだけをxamlで書く → xamlに記述したオブジェクトに Value="{Binding Value}" や Command="{Binding Command}" を書く
ViewModelは基本的にはViewのレンダリングデータを持つ → モデル or リストなどの場合はアイテムとなるモデルをObservableCollectionに入れるたものを持つ?
Modelは通知(Notification)可能なデータやビジネスロジックを持つ

具体的にこんな感じのことが書かれてるし、そんな感じで理解したんだけど、
実際に高機能なTwitter検索のようなアプリを例にしてみると不明な点が下記。

・Twitter APIに通信する部分はサービスクラスを作る?(SOAPなどならWebService参照で自動、でなければ自分で作る)
(TwitterService.GetTimelines、TwitterService.GetFollowerなどのメソッドを用意して、中身はHttpWebRequestなどで通信)
・サービスが返すオブジェクトはModel? TweetやTwitterMemberなどのModelクラスで、各プロパティにはNotifyPropertyChangedで変更通知を実装する
・Viewで「最新のツイートに更新」ボタンが押されたら Command="{Binding RefreshCommand}" でViewModelにコールバックして、
 ViewModelがTwitterService.GetTimelines をコール、結果のObservableCollecetion<Tweet> を受け取って、それをViewModelがTweetsインスタンスを保持する
 →Tweetsに変更があったのでViewが自動的にレンダリングされる