También puede escribir lo que escribió Andrey de forma algo más compacta si selecciona TOP (1) CON TIES y coloca la expresión ROW_NUMBER() en la cláusula ORDER BY:
SELECT TOP (1) WITH TIES
CallerFName,
CallerLName,
CallerDOB,
CreatedOn,
PhoneNoteID
FROM [dbo].[PhoneCallNotes]
WHERE CallerLName = 'Public'
ORDER BY ROW_NUMBER() OVER(
PARTITION BY CallerFName, CallerLName, CallerDOB
ORDER BY CreatedOn DESC
)
(Por cierto, no hay razón para usar LIKE para una simple comparación de cadenas).