NewObject() lets you specify the locatiion of the class library.
CreateObject() assumes it's in your path, or compiled into your .EXE
I think most of the time CreateObject() would be enough.
If you split your application up into many .EXE or .APP files, then you'd need NewObject() to load from a specific file. Unless you put all classes needed into each .EXE of course :)