There are several approaches to do something like that. One is to list the Resource IDs of favorites in the extended field of the user's profile. You'd need a custom snippet to store them and another one to display the pages, but they would be fairly simple. This would be the most efficient approach (a custom DB table would be better, but I think it's overkill for your use case). It's also the most logical, since it's really user data you're saving.
Another way to go would be to 'tag' each resource with the user's username in a TV (or a MIGX TV). Then search for them with MIGX or with something like getResourcesTag (part of the TagLister package). I think you'd still need a custom snippet to save the user's "likes." The problem with this method is speed. The algorithm has to search through all the resources to find the user's favorites. With the method above, you just grab that one field of the Profile and you've got them all.
Either way, you've got a separate issue of creating a method to let users select a page as a favorite. The best method would probably be a button that triggered an Ajax call to a processor that would save the preference.
Thanks for the reply. I'll go with the first option you have suggested and create a comma separated list of Resource ID's as an extended field of the users profile.