I think this is one of the biggest challenges of running a business. I don't have any silver bullets for you, but I can tell you what I have done:
- Regular phone calls and/or emails asking for a status on payment. (One of the things I remind them is that this is my paycheck. It seems like it helps to put it in these terms. And even though it feels like begging, it isn't. You are reminding them that they owe you for services rendered. )
- Reach out to other people in the organization to determine if they might be having some kind of cash crunch or other problem. That will at least tell you something about the "why".
Also, in the "things that might help in the future" department: I try to limit my exposure to these problems. So, for example, I ask for an up front fee on most of my work (10%-50%), especially with a new client. Also, I am pretty careful about making sure that I don't have a lot of outstanding invoices with any clients. If a client is more than a few days behind in payment, I typically stop working on their project until they catch up. I'm less likely to do this with someone who I have been working with for a while, but last year this bit me because one of my customers was over 1 month late in paying over $7,000 in work. Yikes!
Good luck. I hope they do the right thing.