How long is your application running for? If it is only executing a short while then you will see this memory increase.
Under .Net memory is reclaimed through 'Garbage Collection' and the .Net implementation is lazy by design, it will only attempt to free up memory when it believes there is a benefit in doing so. As a consequence this means it behaves in a non-deterministic way i.e. there are no guarantees as to when objects will be released from memory - only that they will eventually be freed up.
The more RAM you have then you will probably notice the objects hanging around longer.
As to unloading an object from itself - as far as I'm aware this isn't possible. If your object holds on to expensive resources (network socket for example) then you may want to investigate the IDisposable interface.
If you feel you need to look into managing your resources more then have a look here
Also a nice little tool from sysinternals can be found here with this you can see how much memory is in use, amount of time spent in garbage collector etc.