Have a last action field, and display all threads with the new posts icon if they've been posted in since the last action. If you want to do a "proper" one, you'd need to track each topic individually. What you could do, to save database space, is when someone reads a topic the "read" field is set, for example:
topic | username |
1 citricsquid
So you check if a row exists for "citricsquid" and the topic "1", if it does then you display the topic as read. However you'd need to reset this every time a new post is made.
Have a look at how phpbb do it :)