per i caratteri accentati minuscoli da tastiera metti una backslash \à\è\étc.

ho fatto questa di prova e dovrebbe funzionare (non ho messo il trattino perché non mi pare che ci vada nei cognomi).
Codice PHP:
$stringa " d. Mariònè di Vàl d'Abruzzésì   ";

$regExp "^([a-z\\'\\ò\\à\\ì\\è\\é\\ù]+(\\.[[:space:]])?[[:space:]]*)+$";

if ( 
eregi($regExp,ltrim($stringa)) ) echo "è un cognome
"
;
else echo 
"non è un cognome
"

Mentre per altri tipi di caratteri tipo ã Ã etc mi si è posto il problema e credo che l'unico modo sia quello di usare preg_match() e usare i valori esadecimali del carattere
Codice PHP:
$stringa " d. Mariònè di Vàl d'ãbruzzésì   ";

// ho messo la "ã"
$val dechex(ord("ã")); 

$regExp "/^(?:[a-z\\'\\ò\\à\\ì\\è\\é\\ù\\x$val]+(?:\\.\\s)?\\s*)+$/i";

if (
preg_match($regExp,ltrim($stringa))) echo "e' un cognome
"
;
else echo 
"non è un cognome
"

Ogni carattere particolare che vuoi controllare va aggiunto (sia maiscolo che minuscolo).
altri modi non ne ho visti (se non mb_ereg() ma sinceramente non saprei).