If you have the ability to make the choice, I would most certainly migrate to WPF/C#.
Once you get over an initial learning curve of WPF/C#, the productivity gains are amazing:
- Not having to deal with memory management alone is huge (C# vs C++)
- Stuff that is complicated to do in MFC is dead simple in WPF (For example, creating resizeable dialogs)
- WPF adds very powerful new features like databinding.
Microsoft has gone to great lengths to give developers ways to use existing C++ code in WPF/C# applications so the real answer is to migrate your code base one piece at a time. With proper design and planning, you'd be able to re-use a large part of your existing code base.
From a business perspective, it's just going to get more and more difficult to find developers who want to work on MFC. As a result, you'll probably wind up paying premiums on salaries. On top of that, do you really want to only be able to attract the type of developer who is content working on legacy technology and not learning or working with newer stuff?