Beware that this method will ultimately store a reference to 'component' as a key in a static hashtable. This will root your component and it will never be garbage collected, unless you call RemoveValueChanged when you are done.
Consider implementing (and using) IDisposable or using a weak reference method, such as data binding through a Binding object. Also see http://agsmith.wordpress.com/2008/04/07/propertydescriptor-addvaluechanged-alternative/ for a discussion.