Faits: A. Le 29 mai 2008, X._ (poursuivante) a fait notifier à Y._ (poursuivie) un commandement de payer les sommes de: (1) 142'847 fr. 95 plus intérêts à 5% dès le 1er janvier 2002, (2) 5'000 fr. plus intérêts à 5% dès le 31 janvier 1997 et (3) 7'000 fr. plus intérêts à 5% dès le 10 avril 2008; elle a invoqué les causes de l'obligation suivantes: «1-3) Contrat de travail et déclaration de garantie du 26.11.1996 : arriérés de salaire au 31.11.06 (net) après déduction des salaires, cotisations sociales et primes d'assurances payées. Tort moral pour usure. Frais de recouvrement par avocat». Cet acte a été frappé d'opposition totale. B. Par prononcé du 3 novembre 2008, le Juge de paix du district de Nyon a rejeté la requête de mainlevée provisoire de l'opposition. Statuant le 12 mars 2009, la Cour des poursuites et faillites du Tribunal cantonal du canton de Vaud a confirmé cette décision. C. La poursuivante forme un recours en matière civile au Tribunal fédéral contre cet arrêt; sur le fond, elle conclut au prononcé de la mainlevée provisoire à concurrence de 70'973 fr. 45 plus intérêts à 5% dès le 1er janvier 2002, subsidiairement de 87'713 fr. 85 plus intérêts à 5% dès le 1er janvier 2002, «sous réserve des cotisations sociales et primes de l'assurance accident non-professionnelles». Elle demande le bénéfice de l'assistance judiciaire pour la procédure fédérale. La poursuivie propose le rejet du recours; l'autorité cantonale se réfère à son arrêt.