Well, I kinda like this question -it makes me think creatively.
To be honest, I haven't exactly explore this topic for any available, well-designed, ready-made solutions. Sure, Communities-type extensions like JomSocial, or other user-management type of extensions, may provide in their own way this kind of functionality. What extension could work for you, depends on the type of site you are creating.
Here I will describe a somewhat simple design solution that it just came in mind thinking your requirements. It involves some custom development though and maybe it won't be the appropriate for you, if you are not in the coding side of things.
How I could visualize this, a registered user- upon login, should arrive at his personalized page - a kind of dashboard, where he would be able to see posts according to his preferences.
Let's see the 2 main problems we have to solve:
First problem: How the user can set his preferences?
For this I would go with a custom user profile plugin.
In my plugin, I would create dynamic checkboxes fields, that will get updated by the available content categories, so the user could make his initial selection of topics of his interests.
Second problem: How to display articles based on user preferences?
For this I would create a custom smart module, which would fetch the user's preferences saved in his profile and then would query the database for an X number of recent articles, for each of the user's selected categories. Maybe, the module could create separate aligned boxes, for each category.
Then I would assigned this module in the user's dashboard page. Keep in mind, that this User's Interests module, could simply be displayed, on top of all other articles, so the user will still be able to reach easily to these articles as well, but has always somewhere easily accessible the articles that are most interesting for him.
The same, or similar module (maybe working in a slightly different mode) could be also displayed in sidebars and other module positions.
Finally, for completing the feature set, I would add a Bookmarks Module, so the users, could add also bookmarks/favorites for the articles they like. I think there is one such module available in JED, hmm here it is myshortlist module
Actually, both the user profile plugin and the smart module shouldn't be very hard to develop.