I run my own email on my own servers. Started in ~2000 with about 10K emails. Now I manage about 25MM email a month. It is possible to put together a solid solution using primarily free software.
If you mind Junk Mail Responders/Feedback Loops and take instructions from the ISPs (e.g. 'back off') you'll be fine. You cannot SPAM. You need solid open rates and you need to test each email for deliverability (we use EmailReach).
There is a lot to learn. Do it wrong and you're dead. It is not so easy to setup and maintain if you've never done it. I manage around 40 servers in a co-lo, so it is not so difficult. SendMail works okay until you reach about 15MM emails a month. You can use Boogie Tools for bounce and feedback look management. Then it is probably time to move to Port25 PowerMTA. This is what 6 out of 10 ESPs use.
So in my mind in-house vs outsourced ESP is a question of scale. At > 10MM emails a month you'll save money if you do it in-house -- that is, if you already have solid sys admins, programmers and DBAs. OEMPro makes a front-end for Port25 that will get you quickly to best practices. Bootstap it and you'll be setup for < $500. Going industrial strength will cost you > $15K out of the gates.
If you look at the Internet Retailer 500 or 1000 group you'll find that > 40% send mail using in-house systems. Again, a function of sale and technical ability.