Estou acostumado a ter o número da versão no próprio URL (/v1/). Pessoalmente, acho que essa é uma abordagem muito mais limpa - dessa maneira, o usuário final (ou desenvolvedor) não precisa lidar com cabeçalhos HTTP e pode simplesmente modificar a API/chamada REST para acessar diferentes versões da API, conforme necessário.
Penso que também é possível que algumas das APIs HTTP disponíveis em diferentes idiomas possam não ter suporte total aos cabeçalhos HTTP, para que você sempre faça a API mais prontamente disponível para o usuário final. Reescrever o URL é a maneira mais simples e deve funcionar com qualquer coisa que suporta o HTTP por aí.
Por fim, permitir que a versão da API seja especificada usando o URL permite testes simples usando um navegador da Web. Se você incorporar a versão em um cabeçalho HTTP, o desenvolvedor será forçado a usar uma linguagem de programação para fazer testes.