Food is too expensive nowadays, and unless she is indigent and can't take care of herself, you need to look after your own family first. Even if she can't take care of herself for some reason, you still have an obligation to YOURSELF and your family first and foremost. If she is over a lot, and assumes that you will always cook, ask her to go to the store with you when you go grocery shopping, and ask her to pay her share of the bill. I guarantee you that she will not be so antsy to come over as much for dinner!
I know, believe me I know how you feel about not wanting to have a confrontation with her. In real life, I am one of the most passive people you would ever meet, but the past couple of years I have learned to look out for myself more than before. It's not easy. I'm not saying being mean, as there are ways to get a point across with kindness. If you want a change, unfortunately it is on you to ask for it, since your friend is not being considerate to your own feelings on this particular matter. Like I said, a REAL friend will understand your concerns.
Take small steps at first. If you cook for her tonight, ask her to help set the table, and when you are done, ask her to help clean up. It is only fair. Hey (your friends name here) can you help me load the dishwasher? I had a busy day today and I could sure use the help! If she helps, talk to her, joke around, or do whatever you do with her. It will help lighten the mood.
Another option is to ask her son to do the dishes, or at least help his mother while she is doing them.
Again, I know how hard it is, but you need to look out for yourself! You and your time are just as valuable as your friend's. And, as I said, if she is a real friend (Which it appears that she is in other ways), she should be more than happy to help, and she shouldn't be upset at all.
If she can't afford food, maybe you could help her apply for food stamps, etc.
I realize that she has helped you out in other ways, but if you are feeling stressed about cooking and cleaning after her, you need to say something, otherwise it may build up inside you which is not good for you.
Just my 2p
What time should I be over for dinner?????