Yes, MVVM is the way to go.
I have used MVVM in most of my applications; When I joined a new company I saw team struggling with the WPF application they were working on from past 1 year, perfromance, maintainabilty, reusability were some major issues; when I looked at the code the only thing came to my mind for solving all the problems was - MVVM.
We refactored the code implementing MVVM properly and were able to get rid of 20-30% code, reuse a lot of code and improve performance to acceptable level.
MVVM(when strictly followed) not only helps you to use WPF features correctly but kind of forces you to look into the solution in WPF way(instead of solving them without using WPF features or using WinForms ways), so it becomes more important and helpful for new teams.
Here are some SO questions which I would suggest you to go through -
What is your experience with abandoning MVVM for UserControl-based WPF architecture?
Starting WPF MVVM. Use a framework?
Custom MVVM implementation Vs. PRISM
Which WPF control suite is best suited to MVVM?