yo me hice la misma pregunta hace unos meses y por lo que ví dependía del foro...
phpbb usa el tema del tiempo: compara la fecha de tu última sesión con la fecha de los posts, algo así:
Código:
$sql = "SELECT post_id FROM " . POSTS_TABLE . " WHERE post_time >= " . $userdata['user_lastvisit'];
smf, en cambio, tiene una tabla llamada
smf_log_mark_read donde va guardando los mensajes que leyó cada usuario... tiene 3 campos: usuario, categoría y mensaje
la segunda seguramente consume menos recursos, pero te genera muchos dolores de cabeza a la hora de crear las querys