Component Kitchen founder Jan Miksovsky shares some of his recent experience creating some general-purpose components over on his user interface design/development blog at flow|state.
Creating really good general-purpose components entails more work than creating components for a single organization or product. You can find a good list of principles for great general-purpose components on the site for the open source basic-web-components project, which is sponsored by Component Kitchen.