Ewentualnie możesz zapisać identyfikatory nieprzeczytanych postów przy starcie sesji. Skąd wiedzieć które są nieprzeczytane? W bazie możesz zapisywać datę ostatniej akcji podjętej przez użytkownika, a potem tylko daty porównać. Potem przy czytaniu usuwasz odpowiedni identyfikator. To, jak będziesz trzymał dane to już twój wybór, ale tutaj dużo do wymyślenia nie ma

Gdzieś już była mowa o tym, jak fora typu phpBB rozwiązują ten problem.