Oh, I'm so sorry. I have a MIL like this, too, and it's hard. You want to love her, or at least do the right thing by her, and it never goes well. And it's so easy to pick up the same attitude. Negativity is extremely contagious.
By telling this woman off, you'll gain a moment of temporary relief. But it won't solve a thing. You know that, I think; that's why you've held your tongue so long.
Your husband may say he has written his mother off, and he may mean it, but deep inside he's hurting - because he is her son.
It would be easier for you if MIL lived at a distance, but I guess she doesn't. Aside from moving yourselves to North Carolina, what can you do? One thing would be to memorize a few short sentences so that you can say them without having to think too much about it. One is, "I don't discuss that." Another is, "Let's change the subject." You can think of a few more. Learn to say them. Don't explain them, just say them. Actually, learn to say them over and over, because you will probably have to. Oh, here's a good one: "Don't talk badly about our family. If you do, you'll have to leave" (or "I'll have to leave," if you're in a restaurant - and then, of course, when she continues you get up and leave. You can leave her money for a taxi if you need to).
This course of action may - but I'm not promising - have the effect of getting MIL to realize that she does not have the audience she's used to having, so she may do less trash-talking. What it will definitely do is give you a better feeling of control, and that's what you want right now.
If your MIL has started an issue, you don't need to give an apology. If she wants to walk out, well, she has feet. Your saying "I'm sorry" when she feels offended doesn't work to keep things on a better keel, much less to make things right. You wouldn't apologize to your child when he/she pulls a power play like walking away and not speaking. Save your apologies for instances when you really do need to ask forgiveness of someone. We all have plenty of *those* times.
Our MILs must be related! I have more breathing room because she lives across the country, and also because now she's written me out of the family (probably trash-talking all the way!). But she's still my husband's mother, so I try to manage my own attitude. Besides, I don't want to be the way she is!
I don't think you can count on your MIL ever changing. But perhaps it can help you manage her without using the same type of anger that you see - and hate - in her. If you need to talk to a counselor about this, do it.