Faits:
A. Depuis le 1er janvier 2008, X._ SA loue à Fribourg des locaux commerciaux appartenant à Y._.
Le 15 avril 2008, la bailleresse a envoyé à la locataire une mise en demeure la sommant de payer, dans les trente jours, la somme de 10'900 fr. représentant les loyers de janvier à avril 2008, avec menace de résilier le bail. Le 15 mai 2008, la bailleresse a envoyé à la locataire une nouvelle mise en demeure pour le loyer de mai 2008, avec délai de paiement de trente jours. Il y figure expressément la précision que "les éventuelles mises en demeure avec menace de résiliation notifiées précédemment conservent toute leur validité, notamment en ce qui concerne les échéances et délais".
Le 21 mai 2008, la bailleresse a adressé à la locataire le formulaire de résiliation du contrat de bail pour le 30 juin 2008.
B. Le 1er juillet, la bailleresse a requis le Président du Tribunal des baux de l'arrondissement de la Sarine (le Président) de prononcer l'expulsion de la locataire. Celle-ci n'a pas déposé de réponse et ne s'est pas présentée à l'audience du 6 août 2008. Par jugement du même jour rendu par défaut, le Président a ordonné l'expulsion. La locataire a demandé le relief.
La locataire ne s'est pas présentée à la deuxième audience du 15 octobre 2008. Le jour même, le Président a rendu un nouveau jugement par défaut par lequel il constatait que l'instance de relief était périmée et confirmait le premier jugement rendu le 6 août 2008. La locataire à de nouveau demandé le relief en arguant d'une assignation irrégulière.
Une troisième audience a été fixée au 10 décembre 2008. La locataire, une fois encore, ne s'est pas présentée. Par jugement par défaut du 18 décembre 2008, le Président a rejeté la requête de second relief et confirmé son premier jugement du 6 août 2008. Le jugement, qui ne comporte pas moins de quatre pages d'attendus, mentionne au pied du dispositif qu'il "ne sera rédigé que si une partie le requiert dans les trente jours à compter de la notification du présent dispositif". La locataire a requis la rédaction. Pour y donner suite, le Président a rédigé le jugement du 6 août 2008 qu'il a notifié à la locataire.
La locataire a interjeté un recours en appel. Par arrêt du 12 mai 2009, la IIe Cour d'appel civil du Tribunal cantonal fribourgeois a rejeté le recours et confirmé l'expulsion.
C. La locataire (la recourante) a formé un recours en matière civile au Tribunal fédéral, concluant au rejet de la requête d'expulsion; invitée à verser une avance de frais, elle a requis des prolongations du délai et payé le 16 octobre 2009 seulement, à l'ultime échéance. La bailleresse (l'intimée) a proposé le rejet du recours.
Considérant en droit:
1. Sur le fond, la recourante soutient qu'une nouvelle mise en demeure lui a été adressée le 15 mai 2008 avec un nouveau délai de paiement arrivant à échéance le 18 juin 2008 et que le congé donné le 21 mai 2008 et reçu le 29 mai 2008 serait ainsi antérieur à l'expiration du délai comminatoire. S'il en était ainsi, le congé serait inefficace (cf. ATF 121 III 156 consid. 1c/aa; arrêt 4C.96/2006 du 4 juillet 2006 consid. 2.2, in MietRecht Aktuell [MRA] 2007 p. 24; Tercier/Favre, Les contrats spéciaux, 4e éd. 2009, n° 2395; Lachat, Le bail à loyer, nouvelle éd. 2008, p. 670 s. n° 2.3.5). Un nouveau congé serait alors exclu durant trois ans, pour autant que la recourante ne soit pas en demeure (art. 271a al. 1 let. e et al. 3 let. b CO). La valeur litigieuse correspond en conséquence à trois ans de loyer (cf. 119 II 147 consid. 1 p. 149; 111 II 385 consid. 1 p. 386; plus récemment, cf. également arrêt 4C.155/2000 du 30 août 2000 consid. 1a, in SJ 2001 I p. 17; 4C.310/1996 du 16 avril 1997 consid. 2a, in SJ 1997 p. 493); elle est manifestement supérieure à 15'000 fr. La voie du recours en matière civile est ainsi ouverte (art. 74 al. 1 let. a LTF).
2. La recourante se plaint d'une violation du droit d'être entendu, au motif que l'arrêt du 18 décembre 2008 n'aurait pas été rédigé.
2.1 Le 6 août 2008, le Président du Tribunal des baux, statuant par défaut, a ordonné l'expulsion de la recourante. Le dispositif de l'arrêt, ne contenant aucun motif, a été notifié aux parties avec l'indication que le jugement ne serait rédigé que si une partie le demandait dans les trente jours. Il n'y a pas eu de telle requête.
Le 15 octobre 2008, le Président, statuant une seconde fois par défaut, a constaté que l'instance de relief était périmée, et il a confirmé le jugement d'expulsion du 6 août 2008. Le dispositif, ne contentant aucun motif, a été notifié aux parties avec l'indication que le jugement ne serait rédigé que si une partie le demandait dans les trente jours. La rédaction n'a pas été requise.
Par jugement du 18 décembre 2008 finalement, le Président a rejeté la requête de second relief, puis confirmé une nouvelle fois le jugement rendu le 6 août 2008. L'expédition envoyée aux parties, à la différence des deux précédentes, contient des considérants "en fait et en droit": sur quatre pages, le Président motive dans le détail le rejet de requête de second relief. Par contre, il ne s'y trouve aucune motivation de la décision d'expulsion rendue le 6 août 2008; mais à la suite du dispositif, figure la mention que le jugement sera rédigé si une partie le requiert dans les trente jours.
La recourante a requis la rédaction. Elle a alors reçu une expédition de l'arrêt du 6 août 2008.
2.2 Le 18 décembre 2008, le Président du Tribunal des baux a rendu une double décision. Il a d'abord rejeté la requête de second relief, décision qu'il a motivée exhaustivement. Il a ensuite confirmé l'expulsion ordonnée le 6 août 2008, mais sans en donner les motifs. Il est manifeste que l'indication selon laquelle le jugement serait rédigé à la demande des parties se rapportait uniquement au jugement d'expulsion du 6 août 2008 qui n'avait pas été rédigé précédemment, et non pas au rejet du second relief déjà motivé.
Quoi qu'il en soit, la recourante a reçu les motifs du jugement du 18 décembre 2008, tant sur la question du second relief que sur celle de l'expulsion. Son droit d'être entendu n'a pas été violé.
3. Pour ce qui est du fond, la Cour d'appel, à titre subsidiaire, a constaté, de façon à lier le Tribunal fédéral (art. 105 al. 1 LTF), que l'avis comminatoire du 15 mai 2008 concernait le loyer de mai 2008 et qu'il y figurait la précision que des avis comminatoires notifiés précédemment gardaient toute leur validité. Elle en a déduit que la recourante ne pouvait pas de bonne foi interpréter cet avis comme une prorogation du délai fixé pour le paiement des loyers des mois de janvier à avril 2008. Il n'y a rien à ajouter à cette interprétation parfaitement pertinente, sinon que contrairement à ce que la recourante prétend dans ses remarques quelque peu obscures sur le système des formes "en quelque sorte absolutisé" en matière de délais, la Cour d'appel ne s'est pas fondée sur l'interdiction de l'abus de droit (art. 2 al. 2 CC).
Le délai de trente jours pour payer les loyers des mois de janvier à avril 2008 a été fixé le 15 avril 2008 et le congé donné le 21 mai 2008. La recourante ne soutient ni n'a jamais soutenu que le congé lui avait été notifié avant l'échéance du délai fixé le 15 avril 2008 ou qu'elle avait payé les loyers des mois de janvier à avril 2008, loyers dont elle ne conteste pas être la débitrice. Il en découle que le congé a été valablement donné le 21 mai pour le 30 juin 2008. C'est donc à bon droit que l'expulsion de la recourante a été ordonnée.
4. Compte tenu de l'issue du litige, les frais judiciaires et dépens sont mis à la charge de la recourante, qui succombe (art. 66 al. 1 ainsi qu'art. 68 al. 1 et 2 LTF).
Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est rejeté.
2. Les frais judiciaires, arrêtés à 2'000 fr., sont mis à la charge de la recourante.
3. Une indemnité de 2'500 fr., à payer à l'intimée à titre de dépens, est mise à la charge de la recourante.
4. Le présent arrêt est communiqué aux parties et à la IIe Cour d'appel civil du Tribunal cantonal fribourgeois.
Lausanne, le 9 décembre 2009
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Présidente: La Greffière:
Klett Cornaz