UPDATE 25th Jan 2010: It looks like this is going to go into 3.0.2, as the attached patch is flagged approval‑thunderbird3.0.2. Yes!
Today, after upgrading my email server from Courier IMAP to Dovecot, I noticed that Thunderbird 3 seemed to randomly set the unread flag on super-old messages. Resetting those flags using a right-click and "Mark Folder Read" also didn't help. Forcing a rebuild of the index also failed solving the issue. Some searching reveiled a bug in the current version of Thunderbird 3: IMAP: In some folders a lot of mails is false marked as unread.
(CONDSTORE is supportted by IMAP server)
Not wanting to wait for a newer release (hopefull 3.0.2 will fix this issue), I figured out how to fix the symptom by tweaking the settings: You have to disable the use of CONDSTORE (see RFC 4551) in Thunderbird 3.
This is done like so:
Open Thundebird 3 preferences and go to the "Advanced Tab" and click on "Config Editor..."

Then, acknowledge you know what you're doing although you might not
Type in "condstore" in the Filter: box and set mail.server.default.use_condstore to false by double clicking on the value

Exit Thunderbird and start over, the symptom should be gone with a slight penalty of using more bandwidth (due to the lack of condstore support).
hope this helps.