Você quer o máximo de grupo :
SELECT * FROM Video JOIN (
SELECT VideoTags.tag_id, MAX(points) points
FROM Video JOIN VideoTags ON Video.id = VideoTags.video_id
GROUP BY VideoTags.tag_id
) t USING (points) JOIN Tags ON t.tag_id = Tags.id
Veja em sqlfiddle .
Observe que esta consulta retorna todos vídeos com o número máximo de pontos dentro de cada tag, portanto, mais de um registro será retornado para tags empatadas. Se você deseja devolver apenas um registro em tais situações, especifique como determinar o vídeo que deve ser devolvido.