I changed the following option (yesterday) from the first option to the second option, as it was necessary to use the second one for another hack:
This option controls how threads and forums are marked as read.
1). Inactivity/Cookie Based - once a user has been inactive for a certain amount of time (the value of the cookie 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.
2). 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.
The Database Read Marking Limit is set to 7 days.
The current system is working as designed for me, but if it's not working for you, you can use the quick links - mark forums as read to mark everything as read when you're done. The way it should work (and is working for me) is that when you read a thread, it's automatically marked as read by changing the icon and unbolding it. If you do NOT want to read a thread, it will remain as unread for 7 days UNLESS you use the "mark forums as read" feature, which will mark everything as read.