It really is for interop as has been said. That is what I have used it for and it works well in that context. I have created WinForms based tools both in C++/CLI and C# and there are very little differences between the two. Both leverage the power of .NET and both are about as fast to develop with. Instead of using object.SomeFunc you normally use object->SomeFunc and instead of doing using dot nomenclature for namespaces you use the scope resolution operator. Managed pointers use ^ in C++/CLI and you have finalizers.

Personally I primarily use it for interop but in theory it is feasible to develop WinForms or WPF in pure C++/CLI rather than C#.