I know that a friend who regularly cancels plans is something that upsets most people. What I find, however, is that how people deal with the problem varies significantly. Recently, someone told me about a friend who had canceled plans twice in a row. He said that he was put off by the behavior and had decided to cut him off and let him go. In essence, he was ready to end the friendship.
As a former Program Director at a clinic, I occasionally had to deal with performance issues that came up with employees. When employees don't perform as you'd like, you don't simply fire them. What do you do? You come up with a plan as to how they can improve their performance. You tell them what needs to change, and you give them a specific time period to change it.
If you're friends with someone, don't you owe them that courtesy, as well? Simply firing your friend is a reflection of your accumulated frustration and your belief that you deserve more respect - all valid. I also believe that firing your friends prematurely reflects your wish to avoid having to talk the problem out. It's easier to fire someone than it is to confront them and work on improving your relationship together.
One of the most consistent issues I see in my clinical work is discomfort people have with confronting people who upset or hurt them. I don't mean attacking or yelling, but confronting situations in a way that still bears respect for the person you're confronting.
When you have a friend who cancels, do the uncomfortable thing - tell your friend how you feel as a result of the constant cancellations. Ask your friend why he or she does it, and ask your friend to stop doing this to you. Give it a certain amount of time (a couple weeks or a month or two). If it keeps happening, give your friend one last chance and explain in a gentle way that you won't be able to maintain the friendship if it keeps happening. Again, set a time line during which you will evaluate whether he or she has made an effort to change. By following these simple steps, you will develop an important social skills that will help you in many areas of your life.