I think you need to work out all the different types of interactions and states that the element can have before you can decide on the best way to represent it, because you will need to take into account of what are some of the expected user behaviours, what the standard conventions are and whether you can cater for changes easily in the future.
Just to give you an idea, some of the behaviours I know of and have seen in the past:
- Read - represents something that the user has read, either because there has been a scrolling action associated with the page/content, or it has been actively marked as read by the user.
- Mark as read - not necessarily read by the user, but can also be used to differentiate it between items that the user has not even looked at so that they can skip it next time they are looking through the content
- Save for later - different from mark as read because the user may have not finished reading or want to come back to it later
- Favourite - marked as significant for various reasons by the user, but mostly so they can come back to it at another time
And as mentioned before, the interactions can also be based on whether it is user driven (i.e. they click a button to change the state), or if it is implied by the user behaviour (i.e. they scroll through a page).
So I think if you look at all the information and states you want the object to have and consider all the different points from the answers provided then you will be able to come up with something suitable.