SQL Server unique index, per subset of data, based on values of another column
Create a unique constraint over two columns.

alter table dbo.Emails add constraint UQ_Emails unique (CustomerId, EmailValue);


This will prevent duplicate emails per customer. Different customers can still have the same email. 

From comments:


  What if I have an IsDefault field too? In that case, the requirement would be:
  
  There should be only one active email per customer, and each customer should not have duplicate emails"


You can do that if you add a filtered unique index:

create unique nonclustered index UX_Emails 
on dbo.Emails (CustomerID) 
where IsDefault = 1;