You're a tough guy, Dan. Running in temps below 20 takes some intestinal fortitude and willpower. And it takes a good layering system. I simply wouldn't recommend trying to find one piece that keeps you warm. You'll look like Mr. Stay-Puft, and you won't be that comfortable.
Layering doesn't mean anything bulky and complicated. Quite the contrary. And after a few runs you'll figure out the best combinations and be able to dress in 5-degree increments.
I recommend three layers. For base layer, something light and synthetic—Patagonia[http://www.patagonia.com/]'s Capilene 1 T ($39) is ideal. So too is REI's Lightweight Polartec Long Sleeve T ($30). Something that wicks and feels good against the skin is the key here.
Over that, add a light or mid-weight wool layer. Smartwool's Midweight Long Sleeve Zip T ($85) adds a tremendous amount of warmth in a light, comfortable piece. Merino wool has an amazing ability to absorb moisture, so as the base layer wicks away sweat, the wool layer will grab it and keep it away from your skin.
Then, a light windproof layer. Brooks Nightlife Jacket ($100) is made from polyester microfiber that breathes well, is naturally water-repellent, and nearly windproof. It's very light, and has a bright reflective scheme. I also like Pearl Izumi's Elite Barrier Jacket ($80), which also uses a soft, windproof polyester fabric.
That combination, along with gloves, hats, etc., will surprise you with how warm it is without much weight or bulk. The only thing I might suggest as an addition would be a soft shell jacket. Salomon's Momentum II ($140) adds some warmth in a wind-resistant and water-shedding layer. So you could toss that over the light base layer, or wool layer, and be off. Maybe better for those REALLY cold days.
Stay warm this winter!