Get entries from client checked options
The most straightforward way would be to use a Categories field.

The value that a Categories field returns to the template is an ElementCriteriaModel, which fits perfectly as a value for the .relatedTo parameter.

So you could do something like:

{% set featuredEntries = craft.entries.relatedTo( entry.selectedCategories ) %}


The only circumstance where I can envision a Checkboxes field being better suited to this use-case is if you need to only provide a specific subset of the categories in a group.

(If you want to make all the categories from a group available for selection, using a Categories field is definitely best; otherwise you have to go back and update the options of your Checkboxes field every time a category is created, changed, or deleted.)

In that case, I recommend using the category IDs as the option values for your checkboxes, so that you can pass them to an ElementCriteriaModel like this:

{% set featuredEntries = craft.entries.relatedTo( entry.selectedCheckboxes | join ) %}