Is Marge a board member or just a regular member of the general membership? If she is a board member, I believe I'd start looking the by-laws to see about ousting her as the board is not a place for her to be. If she is just in the general membership, your approach is the right one. BUT, practice figuring out how to say it firmly but without anger. I know it's difficult (I'm dealing with a lot of anger towards one of our volunteers currently), but I think being factual is key.
Maybe in your case, you could say, "Marge, should you have a concern at a PTO function in the future, please make certain to handle it in a quiet, discreet manner. When you spoke to me at the dinner, your voice was very loud with an angry tone. Many of our guests were startled by your outburst. We can't have this happen at PTO functions. Do you understand?"
She'll say something like, "Yeah, but, didn't you SEE what she was doing? She was blah, blah, blah, blah!"
You: "Never-the-less, please make certain to handle any concerns you have in the future quietly and privately so not to upset our guests."
Her: "But she was blah, blah, blah! That's terrible! We can't have people doing blah, blah, blah!"
You: "I understand this upset you, but we're talking about YOUR actions. In the future, make certain you.............."
Lather, rinse, repeat as necessary. Don't let her drag you into debate over the other woman's actions, but keep bringing her back around to what SHE did and what SHE isn't to do again.