I set up something like this in a weekend many years ago for an opt - in mailing list thing at a company I worked at, for things like product updates and such. It used a web interface to manipulate the data in the database, and a cron job ran every 30 minutes or so and grabbed a chunk of names and processed them. I think we did something like 100,000 emails an hour, maybe a little more.
This was back in the day of BIG servers being a Pentium II 300 with 256 megs of ram.
It's a pretty easy application to write, honestly. The hard part is you HAVE to have a way to let people opt back out, and it's got to be VERY easy to do, or they'll get quite upset at being "spammed" all the time. Also need to set up a cron job to process all the returned as undeliverable mails too.