Вы можете создать IEqualityComparer, чтобы сделать отличную работу, где качество основано только на дате. Если бы это был я, я мог бы попробовать что-то более простое, например:
var tmp = (from itin in db.ITINERARIO
where itin.FE_STAX != null
select new
{
FechaProg = itin.FE_STAX.Value,
IdCiud = itin.EMPRESA_AEROPUERTO.AEROPUERTO.TTCIUD.CO_CIUD,
NoCiud = itin.EMPRESA_AEROPUERTO.AEROPUERTO.TTCIUD.NO_CIUD,
ToDate = itin.to_date
}
).GroupBy(item => item.ToDate).Select(group => group.First());
По сути, вам нужно добавить свойство к анонимному типу, в котором будет храниться дата, сгруппировать по этой дате, а затем вернуть первый элемент в каждой группе.