The easiest and cheapest way is to just use Picasa. It has a lot of options, it works with EXIF data, has the ability to tag photos and has a pretty good search functionality (it is made by Google, so no surprise there). If you want something more powerful, you could try ACDSee. It has way more functionality, but it comes at a cost.
A few more details about Picasa, from Wikipedia:
For organizing photos, Picasa has file
importing and tracking features, as
well as tags and collections for
further sorting. It also offers
several basic photo editing functions,
including color enhancement, red eye
reduction and cropping. Other features
include slide shows, printing and
image timelines. Images can also be
prepared for external use, such as for
e-mailing or printing, by reducing
file size and setting up page layouts.
There is also integration with online
photo printing services.
And regarding search:
Picasa has a search bar that is always
visible when viewing the library.
Searches are live in that displayed
items are filtered as you type.