Campaign member / program member and static lists are often good alternatives to creating fields, although they will not be used as easily as simple checkbox fields by SFDC users.
Anyway, you will need fields in Marketo to display them in your preference center forms, so...
Check boxes are still required to manage this. I spoke about Campaign Member Status use way back when, but decided against it because of the amount of extra workflows to maintain it, which Greg is alluding to.
The real question is how many types of comms will you want to manage and do you think it will matter much? You do not have to put the fields in SFDC unless Sales or record keeping requires it. I usually do so, but not always.
If you want to manage frequency there are several threads here on this to look at. Also:
- use Email Frequency field and setup workflows and Comms limits. Requires a fair amount of work.
- Blog RSS Feeds are easier to maintain and if you use Digesto or Feedblitz, you may be able to control this more easily for the lead.