Oto zapytanie, którego szukasz:
SELECT A.lead_id
,MAX(A.app_id) AS [last_app_id]
FROM appointment A
GROUP BY A.lead_id
Jeśli chcesz, aby wszystkie kolumny odpowiadały tym oczekiwanym wierszom:
SELECT A.*
FROM appointment A
INNER JOIN (SELECT A2.lead_id
,MAX(A2.app_id) AS [last_app_id]
FROM appointment A2
GROUP BY A2.lead_id) M ON M.lead_id = A.lead_id
AND M.last_app_id = A.app_id
ORDER BY A.lead_id
Tutaj po prostu używam poprzedniego zapytania dla połączenia, aby uzyskać tylko żądane wiersze.
Mam nadzieję, że to ci pomoże.