We use a preference center where you can opt out of communications around events, thought leadership, etc. which changes a field on the persons profile from True to False when they opt out for whatever area they don't want to recieve. The key is when you create a campaign in the future to add a filter in the smart list for the type of communication you are sending out as True so that anyone who opted out won't be put into that flow. This won't remove them from any flows that they are currently in though (it might if you use the engagement portal, I'm not super familiar with how that works).