We use a three-part campaign. (1) We have a booth at a local trade show, (2) send a post card follow-up, and then (3) send an e-mail invitation to a free seminar held at our location.
We collect e-mail addresses at trade shows and networking events, such as the Chamber of Commerce. It works fairly well. Our list got so big (over 2,000) that we now outsource the maintenance of it to a local e-mail marketing firm. We try to send "It was a pleasure to meet you" e-mails to people we meet at local networking events within a day or two of meeting them.