Parsing notification information from distribution lists
The only change I would make would be to remove the two statements where you create the lists sms and email.  They are redundant: by adding the EmailAddress and MobileNumber to the query where you are creating the initialList, you can do a select on the initialList.

var initialList = (from j in JunctionTable
                where listBoxItems.Contains(j.DistributionName)
                join c in contacts on j.ContactID equals c.ContactID
                select new { c.ContactID, c.Surname, c.EmailAddress, c.MobileNumber, 
                                j.DistributionName, j.EmailFlag, j.SMSFlag }).ToList();


I changed these more because I like this syntax better than the SQL like Linq.

var emailAddresses = initialList
    .Where(l =&gt; l.EmailFlag)
    .Select(l =&gt; l.EmailAddress).Distinct().ToList();

var smsMobileNumbers = initialList
    .Where(l =&gt; l.SMSFlag)
    .Select(l =&gt; l.MobileNumber).Distinct().ToList();