notmuch is a clean mail indexer. You know you got an email from someone with their current phone number, but can't remember where you put it? Notmuch to the rescue:

$ notmuch show from:jdoe@example.com home phone
message{ id:DF741236-…@example.com … filename:/home/you/mail/…

header{
John Doe <jdoe@example.com> (October 04) (inbox)
Subject: new contact info
From: John Doe <jdoe@example.com>
To: You <you@big.edu>
Date: Tue, 4 Oct 2011 18:08:57 -0600

header}

body{

part{ ID: 1, Content-type: text/plain
I've got a new home phone number:

  123-456-7890.

Cheers,
John

part}

body}

message}

Gentoo installation is simple:

$ emerge -av notmuch
$ notmuch setup
(interactive creation of ~/.notmuch-config)
$ notmuch new
(initial indexing)

When you want to update the index, just run notmuch new again. You can get fancy with offlineimap hooks:

[Account Upsilon]
postsynchook = notmuch new

but I just have a Bash alias in my dotfiles along the lines of

alias offlineimap-in='offlineimap && rm -f ~/mail/Junk/* && notmuch new'

You can also get fancy with mutt integration, but I just grep the search results on the command line to get what I want.

P.S. I'm cleaning out my backlog of half-completed blog posts today, can you tell?