Wow, big question. It is probably deserving of a blog post (or hey, a book! :smileyhappy: ).
First, briefly:
Cmdlets are the highest level of interface with .NET objects which PowerShell provides. VMware knows more or less what VI admins need to do their jobs. They have a goal of enabling admins by creating cmdlets for as many usage scenarios as they can. Time and money of course are limiting factors, and so version 1 came with a certain set of cmdlets. It was seen that this wasn't good enough, and that there needed to be a way to access the full SDK to do the low level stuff for which they did not yet have time to fill out with cmdlets. Thus, Get-View.
Get-View deals with server-side objects represented by the VI web service (and documented in the SDK). With it, you can do anything that the VI Client can do, and more. It's more complicated to use, of course, and in fact, it's not a lot simpler than writing a "full" program using a language like C#. But it's not bad, relatively speaking.
You can pass several different kinds of "automation objects", those which live in your PowerShell session, to Get-View and voila, you now have a new object which has a richer set of methods and properties. However, this only works for "managed objects" (and not directly for all of them), which are only one type of object represented in the SDK. This leaves "data objects" totally left out, and they are important, too.
New-Object has nothing to do with the VI Toolkit, it's a cmdlet which comes with PowerShell. Its used to give you the ability to access a .NET (or COM) object which is stored in an assembly (fancy name for a DLL). One thing you can do with it is to create these data objects. The data objects are often used as specifications to methods. This basically works like a giant bundle of arguments to perform a single action.
And that's all I have time to say right now. :smileyhappy:
Author of the upcoming book: Managing VMware Infrastructure with PowerShell
Co-Host, PowerScripting Podcast (http://powerscripting.net)