' Me.ToolTip1.SetToolTip(Me.Label1, someString)
The cause: a ToolTip in a UserControl will prevent the garbage collector from collecting the usercontrol after a call to Tooltip.SetToolTip.
This was a known bug with a workaround in .NET 1.x, which seems to have resurrected from .NET 2.0 onwards. The workaround involves explicitly disposing the ToolTip when the form is disposed. But alas! The workaround won't work around when the ToolTip is part of a UserControl who's parentform is not disposed.
In our case the form will not often be disposed, but the usercontrols are frequently created and destroyed during the lifetime of the form. And since there is no way to tell when a usercontrol is "unloaded", there is no way to apply the workaround.
The test project can be downloaded from my website.