Why are you asking this question?
Assembly.Load is the easiest. It will dynamically load an assembly based off the string name (or even raw byte array). You then have an assembly object from which you can use its metadata to do things with. Great for reflection.
LoadLibrary is the pInvoke way of doing things. It will basically load a dll into memory for you. I prefer not to use it. Assembly.Load returns an assembly object.
CreateObject is for use with COM. Basically when you want to load a com library.
CoCreateInstance will create an instance of a com object. I haven't ever needed this.