It is always better to dispose off the unused objects which are no longer in use. Like if you take an example of the Connection object, it is generally being disposed off in a 3-Tier architecture when the full transaction gets completed as it is not always good to close a connection as it may have performance issues om the application. Although a Garbage Collector takes care of it and destroys an open connection when it is no longer in use for long time. You must have heard about the GENERATIONS in Garbage collector (refer:-http://msdn.microsoft.com/en-us/library/ms973837.aspx
In the same way disposing the objects which are no longer in use will obviously increases the performance rather then allowing the garbage collector to do the same task.