Hi,
You can use the classes in the System.Reflection namespace to load a .NET assembly dll at runtime, what your trying to do is usually referred to as late binding. A couple of classes you want to look at are the AppDomain, Assembly, and Type classes as these are commonly used to load and create instances of classes through late binding.
There is a bit to reflection and the best place I can think to get good information was a couple of sample chapter that were posted a while back on MSDN, unfortunately I cannot find the page, but you can download them here. There are two books, one VB.NET and one C#, I see your background is C# but do read the VB.NET sample chapter as both really cover a technology expressed in a language rather than any language specific stuff. Worth your while as both books have slightly different coverage...
Reflection C#
Reflection VB.NET