Depende de seus dados (quantas linhas existem por grupo?) e seus índices.
Consulte Otimização de consultas TOP N por grupo para algumas comparações de desempenho de 3 abordagens.
No seu caso, com milhões de linhas para apenas um pequeno número de veículos, eu adicionaria um índice em
VehicleID, Timestamp
e fazer SELECT CA.*
FROM Vehicles V
CROSS APPLY (SELECT TOP 1 *
FROM ChannelValue CV
WHERE CV.VehicleID = V.VehicleID
ORDER BY TimeStamp DESC) CA