This is due to a change we've made in the way that the forum marks threads as viewed. It may take a small change in the way you do things now but I think you will find the benefits outweigh the problems. If not, we can always change it back.
Basically, in the past if you visited the site and read a few threads the system simply assumed that you read all of the available threads on the entire forum while you were here. It couldn't distinguish between threads you had and had not actually read. It just looked at the cookie for a time stamp and marked everything read when you left.
The new system actually keeps track of which threads you have and have not read. It doesn't mark threads as being read if you have not actually read them.
For an example:
Old Way
1. A forum has two threads on it.
2. You visit and read thread #1.
3. You go away to lunch and come back to the forum.
4. Neither thread has new posts in it.
5. The system shows incorrectly that you have read both threads.
New way:
1. A forum has two threads on it.
2. You visit and read thread #1.
3. You go away to lunch and come back to the forum.
4. Neither thread has new posts in it.
5. The system shows that you have read thread # 1 but not thread # 2. It's easier to identify where there are posts that you have not read yet.
It can get a bit more complicated than that but basically it just keeps better track of what has and what hasn't been read.
If you want a list of all topics, even those you have read, you could try using Active Topics > Last Day from the top menu. See if that works ok for you or not.
From the manual
This option controls how threads and forums are marked as read.
Inactivity/Cookie Based - once a user has been inactive for a certain amount of time (the value of the session timeout option) all threads and forums are considered read. Individual threads are marked as read within a session via cookies.
This option is how all versions of vBulletin before 3.5 functioned.
Database (no automatic forum marking) - this option uses the database to store thread and forum read times. This allows accurate read markers to be kept indefinitely. However, in order for a forum to be marked read when all threads are read, the user must view the list of threads for that forum.
This option is more space and processor intensive than inactivity-based marking.
Database (automatic forum marking) - this option is the same as a previous option, but forums are automatically marked as read when the last new thread is read.
This is the most usable option for end users, but most processor intensive.
We are currently using the middle choice.
Try it out for a bit and let us know what you think. We'll keep it in place for a while and if it doesn't work out we can always switch back.