Le due funzioni fanno esattamente la stessa cosa, solo che una lo fa in MySql, l'altra lo fa in PHP.

LAST_INSERT_ID() è una funzione MySql, quindi la puoi usare solamente in un contesto MySql in cui ci sono magari diverse query che vengono eseguite una dopo l'altra. Ad esempio puoi avere una prima query che esegue una INSERT ed una seconda query che esegue una SELECT LAST_INSERT_ID() per ottenere l'ID ottenuto con la precedente INSERT.

mysql_insert_id() è una funzione PHP e quindi la usi solo in uno script PHP. Ad esempio puoi eseguire prima una bella mysql_query() e poi una mysql_insert_id() per avere l'ID restituito dalla queri di inserimento.