I don’t normally add links to code in other sites, but it would be counter-productive to try to create something which was already done very well on another site.

It really irritates me when I either create or use a web part and use a feature to create it only to find out that when it’s removed from the site, the web part remains in the gallery.

Just click here to find the code to make this possible in your own web parts/features:
http://www.theblackknightsings.com/Blog/Post/6/FeatureReceiver-To-Cleanup-WebPart-Files