it _could_ be done with a cookie as well, but remember cookies expire and they do not transfer from browser to browser. there are also limitations to the number of cookies that can be set and the size of the cookies that can be set, so using cookies for this is not very reelable. It would still require hand coding to accomplish.
when viewing a message, you would need to create an array with the id's of the messages that have been viewed.
then on load, you can check the IDs in the cookie versus the current message ID to see if it should be bold or not.
like i said, there are limitations to the cookie size though, so after viewing so many messages, the cookie will not be able to update any more, so you would need to clear the cookie when it gets to a certain size and start all over again.
either way, it's a simple concept to say "mark read messages", but not a simple concept to implement.