How can people view which mailing lists they're subscribed to?
Have a look at the CiviCRM Tokens wiki page: http://wiki.civicrm.org/confluence/display/CRMDOC/Tokens

I think the one you'll be most interested in is {action.subscribeUrl} which provides a link to view and subscribe to any public mailing lists.

You could also build a profile with the groups field in it and sent it out via a checksum token. This will link the details to their record and allow them to update. This is useful if you want them to be able to update other information at the same time.

Full details on the checksum token at the bottom of the wiki page.