Sachverhalt: A. Mit Verfügung vom 24. August 1999, bestätigt durch Entscheid des Sozialversicherungsgerichts des Kantons Zürich vom 31. Oktober 2000, lehnte es die IV-Stelle des Kantons Zürich ab, der 1954 geborenen Z._ eine Rente auszurichten. Auf ein erneutes Rentengesuch hin sprach die Verwaltung der Versicherten - nach Einholung eines Gutachtens der Medizinischen Abklärungsstelle (MEDAS) X._ vom 17. Dezember 2001 - mit Verfügung vom 17. Oktober 2002 für die Zeit ab 1. April 2000 eine halbe Rente bei einem Invaliditätsgrad von 55 % zu. Am 7. Oktober 2003 ersuchte Z._ um Erhöhung der laufenden halben auf eine ganze Rente. Zur Begründung erklärte sie, ihr Gesundheitszustand habe sich verschlechtert und sie sei seit 8. Mai 2003 vollständig arbeitsunfähig. Die IV-Stelle holte Berichte der behandelnden Ärzte ein und gab bei Dr. med. W._, Neurologie und Psychiatrie und Psychotherapie FMH, ein psychiatrisches Gutachten in Auftrag, welches am 9. Juni 2005 erstattet wurde. Anschliessend lehnte die Verwaltung das Erhöhungsgesuch mit Verfügung vom 8. Juli 2005 und Einspracheentscheid vom 4. Oktober 2005 ab. B. Die dagegen erhobene Beschwerde wies das Sozialversicherungsgericht des Kantons Zürich ab (Entscheid vom 29. Januar 2007). C. Z._ lässt Beschwerde führen mit dem Rechtsbegehren, es seien der kantonale Entscheid und der Einspracheentscheid aufzuheben, und die IV-Stelle sei zu verpflichten, ihr ab August 2003 eine ganze Rente auszurichten; eventuell sei die Sache zur Ergänzung der Abklärungen an die IV-Stelle zurückzuweisen. Ferner wird um unentgeltliche Rechtspflege und Verbeiständung ersucht. Die IV-Stelle schliesst auf Abweisung der Beschwerde. Das Bundesamt für Sozialversicherungen verzichtet auf eine Vernehmlassung.