Actually you will usually find BOTH the private IP address behind the NAT and the public IP address of the router in the headers. Check out a few mails you've received from a few different sources, see for yourself.
I just picked the two latest I got (and redacted them) as an example.
The first one sent through GMail (SMTP I guess, not webmail) :
Return-Path: <xyz@gmail.com>
Received: from [192.168.1.18] (123-123-123-123...bbox.fr. [123.123.123.123])
by mx.google.com with ESMTPSA id ...
for <multiple recipients>
(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
and another one, through OVH this time :
Received: from unknown (HELO ?192.168.0.23?) (xyz@abc.fr@123.123.123.123)
by ns0.ovh.net with SMTP;
Both "123.123.123.123" were the public IP address from their DSL connections. In both cases as you can see, I could know both IP addresses.