Why are you converting to array, and then to a list? Also, if your email message supports AddRange, an alternative is to try the following?
var addresses = (from p in emailMessage.EmailParamHeaders.To
where p != null
select p).ToList();
if (addresses != null && addresses.Count>0)
m.To.AddRange(addresses);
Depending what's going on inside the Add method, you can often find that an AddRange works more efficiently.
*pre-emptive celebratory nipple tassle jiggle* - Sean Ewington
"Mind bleach! Send me mind bleach!" - Nagy Vilmos
CodeStash - Online Snippet Management | My blog | MoXAML PowerToys | Mole 2010 - debugging made easier