Q:

Como criar um índice único baseado em duas colunas?

Tenho uma tabela com estas colunas:
ip
nome
email

Quero que ip e o email sejam um par único. Um mesmo valor de ip pode conter vários registros e um mesmo email também pode. Porém o mesmo ip e mesmo email deve ser único.
Tal que, isto seria possível:
  - ip              nome              email
1 - 187.89.98.4     João              joao@gmail.com  // ip repetido com registro 2
2 - 187.89.98.4     Maria             maria@gmail.com // ip repetido com registro 1; email repetido com registro 3
3 - 197.19.1.47     Vinicius          maria@gmail.com // e-mail repetido com registro 2

Porém isto não:
  - ip              nome              email
1 - 187.89.98.4     João              joao@gmail.com // mesmo ip com mesmo e-mail com registro 2
2 - 187.89.98.4     Maria             joao@gmail.com // mesmo ip com mesmo e-mail com registro 1

pois não quero que o par ip e email se repita.

A:

CREATE UNIQUE INDEX IpEmail ON tabela (ip ASC, email ASC)

Documentação.
Espero que tenha um outra coluna que seja a primária, estes dados podem variar e não são bons candidatos a chave primária. Se quiser insistir:
ALTER TABLE tabela ADD CONSTRAINT IpEmail PRIMARY KEY CLUSTERED (ip, email);

Documentação.
Coloquei no GitHub para referência futura.

