You are talking about a situation where the problem behavior happens in public and during the meeting. So you risk embarrassment with the reprimand, but not by revealing the problem behavior -- everybody affected already knows that.
The progression I have seen, and try to follow if I'm the one conducting the meeting, is:
First occurrence: steer the conversation back to the agenda/topic but don't otherwise say anything. (Forgive a one-time occurrence without comment.)
Second occurrence: say something like "we have a lot to cover tonight, so let's please try to focus on the agenda and on not repeating things that others have already said". (My congregation board meetings tend to see long-winded "me too" comments from people who want to say something; this latter part is about that.) This is the general warning that you mention in the question.
If there are any breaks in the meeting where you can talk with the person quietly, it's worth taking him aside and asking for his help to keep the meeting on track. Getting a well-timed break like that is pretty unlikely, but if you do get one, try to use it.
Third occurrence: at this point the person is either oblivious or intentional. General comments didn't work, so you don't have much choice -- you have to address him. There are two cases here:
If the stuff he wants to talk about would be appropriate in another context but not now, you can say something like "Bob, thanks for bringing that up, but that's a separate conversation. {Let's table that | Let's put it on the agenda for our next meeting | Please talk with me after the meeting so we can follow up}." Usually this works (the person didn't mean to be disruptive); if it doesn't, this is the point where the person running the meeting needs to be firm. (If nobody's running the meeting, that's a problem.)
If the stuff he wants to talk about isn't appropriate (e.g. you're trying to have a staff meeting and somebody wants to talk international politics), you have to say something like "Bob, this isn't the right place to discuss that; please stop". If he protests you may need to repeat this. Once or twice I've seen the person running the meeting call for a break at this point and take the person aside; you have to weigh the disruption to the whole group of the ongoing interruptions versus the awkwardness of doing this.
That all works if you're the person running the meeting. What if you're just another attendee?
I find myself in this situation a lot (a class I'm in has a disruptive member with, apparently, no "I'm bothering people" sensors). I try to let the person in charge handle it; it's no fun to be running a meeting while several other people try to simultaneously "help" you with stuff like this. If the person in charge isn't doing anything about it and you can't ignore it, all you can probably do is to try to use your own participation to steer the discussion back to where you wanted it to go. If there's a break you can try to talk with the leader privately.
And what if there is nobody in charge -- it's a meeting among peers, with no clear leader? Consensus-driven meeting management is hard. You can use the "let's table this" / "let's talk about this more at our next meeting" approach; if others feel the way you do, they'll probably support you in that. Most people in any community won't speak up on their own but many will say "yeah, what he said" if you give them something to respond to, so focus on making your proposal.