Searching Sitecore Data
In one of your comments (now removed), you mentioned that the data that you want to search is all in the Sitecore database - implicitly the master database. As such, when you say that you want to attach a "custom data source" I infer that you mean that you want a specific piece of the Sitecore tree to be searched or a special query to be performed.
Assuming the above, I believe that what you are looking for are search facets and search filters. If yoou are looking to customize content search within the Sitecore client beyond that, you will likely have to create your own interface.
Searching External Data
If your data is not stored in Sitecore, then the comments from @AdamSeabridge should put you on the right path. Basically, you will need to create a custom data provider. You can do so with fairly limited effort or a very high amount of effort, depending on your implementation. You can find some pretty good documentation to help get you started, here.
Note that if you write a custom data provider, your content authors can search directly within the same content search tab as they would have otherwise, provided that you code your data provider to support content search. In other words, no additional tabs or custom SPEAK applications will be necessary, unless you have additional requirements for them that need to be satisfied.
Note that if your data is actually stored in Sitecore then you should avoid writing a custom data provider.