When you're finished with a Graphics object, you should always call its Dispose() method to ensure that all resources are freed. Simply letting an object variable go out of scope doesn't ensure that the resources used by the object are freed. Graphics objects can use considerable resources.
In C# you could instead use the using statement, if applicable.
I am not sure if that is correct. If you are given a graphics object (say, by a Paint event), I think you should not dispose it (trs-although I think calling Dispose() is a good idea when you got the Graphics instance from CreateGraphics() instead of an event).