As noted, use NOT EXISTS. Also, uniquely cluster the NoEmail table on the EmailAddress.
...
CREATE TABLE #tblNoEmail
(
EmailAddress varchar(100) PRIMARY KEY CLUSTERED
)
...
SELECT *
FROM #tblContacts C
INNER JOIN #tblEmails E ON C.ContactID = E.ContactID
WHERE NOT EXISTS (
SELECT 1
FROM #tblNoEmail NE
WHERE E.EmailAddress = NE.EmailAddress
)
SQL DBA,SQL Server MVP(07, 08, 09) A socialist is someone who will give you the shirt off *someone else's* back.