The way memory management works in .NET is, simply put...
Memory is managed for you, once you are done using an object, it goes out of scope or you call it's Dispose method, you're not actually freeing up the memory that was being consumed. Rather, you are indicating that the object is no longer needed.
The Garbage Collector actually de-allocates and compacts the memory, so long as an object is not referenced subsequently, it will be collected by the GC. This is non-deterministic, you wont know exactly when it is going to happen and although you can call GC.Collect() it is kind of an expensive operation, so it is best to let it be.
If it concerns you that much, be sure you dispose of any object that require it, or utilize Using statements. Don't reference anything anymore than you have to, even just to set it to nothing.
CODE
Dim myVar As String = "Hello, world!"
MessageBox.Show(myVar)
myVar = Nothing 'This could actually keep it in memory longer
Read up on
garbage collection in the .Net Framework.