User access levels & subscriptions

Hi everybody,

I am working on a new project which would allow people to register as a
guest, with the option of also subscribing (paying) to get extra
features. I wondered if anyone had done something like this before?

I kindof understand the authentication part, but I am unsure how to
tie-in the option of subscribing and in effect 'unlocking' extra
features - for example, allowing the user to store more private
messages etc.

If you know of some tutorials or if you can offer any tips, then that
would be great.

Thanks,
Neil.