beh..la prima cosa che credo non vada bene è l'apice...qui
AND Ler.leaTODate <= '@DateEnd

posta l'intera stored procedure e non solo la fine. chi ti dice che l'errore non si verifica all'inizio della sp?