When you have a variable of a value type, that variable directly holds a value. If you assign it to another variable, the value is copied directly. When the variable is of a reference type, it does not hold the value directly, but rather a reference (a pointer) to the value. When you copy the variable, you don't copy the value that it points to, but the reference (pointer).
You can read more about in MSDN: http://msdn.microsoft.com/en-us/library/s1ax56ch.aspx and http://msdn.microsoft.com/en-us/library/490f96s2.aspx