Faits:
A. En 1974, W._ SA (devenue depuis lors X._ SA; a donné en location à H.Y._ et F.Y._ un appartement de six pièces d'une surface de 174 m2 situé au deuxième étage de l'immeuble sis à la rue Charles-Sturm ..., à Genève. Depuis le 1er juillet 1994, le loyer, sans les charges, s'élève à 15'948 fr. par an, soit 1'329 fr. par mois, avec un taux hypothécaire de référence de 5,5 %.
L'immeuble abritant l'appartement a été construit en 1893 et rénové en 1979; selon les locataires, la rénovation n'a concerné que la façade. Il est équipé du téléréseau collectif, d'un interphone, du chauffage central et d'un ascenseur. Le bâtiment, dont l'état général est bon, est situé en bordure du boulevard des Tranchées, artère enregistrant un trafic automobile intense. Il se trouve à proximité de commerces, de restaurants, des transports publics, d'écoles et de jardins publics. L'appartement comprend un hall d'entrée, des fenêtres à double vitrage, des installations électriques anciennes et des dépendances; la cuisine n'est ni agencée, ni équipée; le logement ne bénéficie pas d'un parking.
Par avis officiel du 2 mars 2007, X._ SA a résilié le bail pour le 30 juin 2007. Le congé a été signifié pour des motifs économiques, afin de relouer l'appartement à un tiers pour un loyer supérieur.
B. H.Y._ et F.Y._ ont saisi la Commission de conciliation d'une requête en annulation de congé.
Non conciliée, l'affaire a été portée devant le Tribunal des baux et loyers du canton de Genève. Par jugement du 17 septembre 2008 rendu après instruction écrite, sans audition des parties et sans les enquêtes sollicitées par la bailleresse, le tribunal a annulé le congé. En substance, il a retenu qu'aucun des trente objets comparatifs présentés par la bailleresse n'était comparable à l'appartement dont le bail avait été résilié et, partant, que X._ SA n'avait pas démontré qu'elle pourrait relouer l'appartement à un tiers pour un loyer non abusif supérieur au loyer payé par les locataires actuels.
Saisie par la bailleresse, la Chambre d'appel en matière de baux et loyers du canton de Genève a confirmé ce jugement par arrêt du 19 juin 2009. Sur les trente appartements présentés à titre d'objets comparatifs, la cour cantonale n'en a examiné que neuf, situés à proximité immédiate de rues comportant un trafic automobile important et dans un périmètre délimité par le boulevard des Tranchées, la rue de l'Athénée, la rue de Contamines et la rue Michel-Chauvet. Elle a d'emblée écarté les éléments de comparaison sis en dehors de ce périmètre au motif qu'ils se trouvaient dans un tissu urbain différent, comprenant des constructions plus récentes et offrant un caractère plus résidentiel. Pour le surplus, la Chambre d'appel est arrivée à la conclusion, pour des motifs divers, qu'aucun des neuf objets sis dans le périmètre défini n'était comparable avec l'appartement occupé par les époux Y._.
C. X._ SA interjette un recours en matière civile. Elle conclut principalement à ce qu'il soit constaté que le bail a été valablement résilié avec effet au 30 juin 2007 et à ce qu'aucune prolongation de bail ne soit accordée aux locataires; à titre subsidiaire, elle demande le renvoi de la cause à la cour cantonale.
H.Y._ et F.Y._ proposent principalement le rejet du recours; à titre subsidiaire, ils demandent le renvoi de la cause pour instruction complémentaire et, plus subsidiairement, une prolongation de bail de quatre ans.
La cour de céans a délibéré sur le recours en séance publique.

Considérant en droit:
1. 1.1 Les contestations portant sur l'usage d'une chose louée sont de nature pécuniaire; elles ne peuvent donc être soumises au Tribunal fédéral, par un recours en matière civile, que si elles atteignent la valeur litigieuse prescrite par la loi. En matière de droit du bail à loyer, cette valeur s'élève à 15'000 fr. (<ref-law>).
En cas de litige portant sur la résiliation d'un bail, la valeur litigieuse se détermine selon le loyer dû pour la période durant laquelle le contrat subsiste nécessairement, en supposant que l'on admette la contestation, et qui s'étend jusqu'au moment pour lequel un nouveau congé aurait pu être donné ou l'a été effectivement. Pour déterminer la prochaine échéance possible, il faut donc supposer que l'on admette la contestation, c'est-à-dire que le congé litigieux ne soit pas valable. Lorsque le bail bénéficie de la protection contre les congés conférée par les <ref-law>, il convient, sauf exceptions, de prendre en considération la période de trois ans prévue à l'art. 271a al. 1 let. e CO (arrêt 4A_130/2008 du 26 mai 2008 consid. 1.1, in SJ 2008 I p. 461; arrêt 4A_472/2007 du 11 mars 2008 consid. 1.1 et les références).
S'élevant à 15'948 fr., le loyer annuel de l'appartement en cause est déjà supérieur au montant de 15'000 fr. exigé par l'<ref-law>, de sorte que le recours est recevable ratione valoris.
1.2 Pour le surplus, émanant de la partie qui a succombé en instance cantonale (<ref-law>), et dirigé contre une décision finale (<ref-law>) rendue en matière civile (<ref-law>) par une autorité cantonale de dernière instance (<ref-law>), le recours est recevable, puisqu'il a été déposé dans le délai (<ref-law> en liaison avec l'art. 45 al. 1 et l'<ref-law>) et la forme (<ref-law>) prévus par la loi.
1.3 Le recours en matière civile peut être interjeté pour violation du droit, tel qu'il est délimité par les art. 95 et 96 LTF. Le Tribunal fédéral n'entre pas en matière sur la violation d'un droit de rang constitutionnel ou sur une question afférente au droit cantonal ou intercantonal si le grief n'a pas été invoqué et motivé de manière détaillée par la partie recourante (<ref-law>). Pour le reste, il applique le droit d'office (<ref-law>), sans être limité par les arguments soulevés dans le recours ni par la motivation retenue dans la décision déférée; il peut donc admettre un recours pour d'autres motifs que ceux qui ont été articulés, ou à l'inverse, rejeter un recours en adoptant une argumentation différente de celle de l'autorité précédente (<ref-ruling> consid. 1.4 p. 400; <ref-ruling> consid. 1.1 p. 104). Cependant, compte tenu de l'exigence de motivation contenue à l'art. 42 al. 1 et 2 LTF, sous peine d'irrecevabilité (<ref-law>), le Tribunal fédéral n'examine en principe que les griefs invoqués; il n'est pas tenu de traiter, comme le ferait une autorité de première instance, toutes les questions juridiques qui se posent, lorsque celles-ci ne sont plus discutées devant lui (<ref-ruling> consid. 1.4 p. 400; <ref-ruling> consid. 1.1 p. 105).
Par ailleurs, le Tribunal fédéral conduit son raisonnement juridique sur la base des faits établis par l'autorité précédente (<ref-law>). Il ne peut s'en écarter que si les constatations de l'autorité précédente ont été établies de façon manifestement inexacte - notion qui correspond à celle d'arbitraire au sens de l'art. 9 Cst. (<ref-ruling> consid. 1.5 p. 130, 397 consid. 1.5 p. 401; <ref-ruling> consid. 8.1 p. 153) - ou en violation du droit au sens de l'<ref-law> (<ref-law>), et pour autant que la correction du vice soit susceptible d'influer sur le sort de la cause (<ref-law>). Aucun fait nouveau ni preuve nouvelle ne peut être présenté à moins de résulter de la décision de l'autorité précédente (<ref-law>).
2. En premier lieu, la recourante invoque une violation de l'<ref-law>. Cette disposition précise qu'un loyer n'est en principe pas abusif s'il se situe dans les limites des loyers usuels dans la localité ou dans le quartier.
2.1 Un congé motivé, comme en l'espèce, exclusivement par la volonté du bailleur d'obtenir d'un nouveau locataire un loyer plus élevé que le loyer payé par le locataire dont le bail est résilié ne contrevient en principe pas aux règles de la bonne foi (cf. <ref-law>). Pour être valable, une résiliation dictée par des considérations d'ordre économique ne doit toutefois pas servir de prétexte à la poursuite d'un but illicite. Il faut donc que le bailleur soit en mesure d'exiger du nouveau locataire un loyer supérieur au loyer payé jusque-là par le preneur congédié. En d'autres termes, le congé est annulable si l'application de la méthode de calcul absolue permet d'exclure l'hypothèse que le bailleur puisse majorer légalement le loyer, notamment parce que celui-ci est déjà conforme aux loyers usuels dans le quartier (<ref-law>) (cf. <ref-ruling> consid. 3b/bb p. 110; plus récemment, arrêt 4A_472/2007 du 11 mars 2008 consid. 2.1 et 2.2). En l'occurrence, il s'agit de déterminer si une augmentation du loyer est possible en application de la méthode absolue. Ce point n'est pas contesté.
2.2 Le grief de la recourante se rapporte à la détermination des loyers usuels dans le quartier. La bailleresse reproche à la Chambre d'appel d'avoir défini de manière trop restrictive la notion de "quartier" figurant à l'<ref-law> et reprise à l'art. 11 al. 1 de l'ordonnance sur le bail à loyer et le bail à ferme d'habitations et de locaux commerciaux (OBLF; RS 221.213.11), en retenant un périmètre extrêmement réduit d'environ six hectares, qui correspond à 0,35 % de la surface de la ville de Genève, et en ne tenant aucun compte du découpage administratif de la ville en seize quartiers.
2.2.1 Il convient de déterminer ce que la loi entend par quartier, notion qui relève du droit.
La référence au quartier mentionné à l'<ref-law> a été reprise de l'art. 15 al. 1 let. a AMSL (RO 1972 II 1531). Le terme de quartier figure également dans la version allemande de l'<ref-law> ("quartierüblichen Mietzinse"). Aucune définition ne ressort des textes légaux ni des travaux législatifs. Le Tribunal fédéral n'a guère eu à se pencher sur cette notion. Il a précisé toutefois que des immeubles pouvaient faire partie du même quartier bien qu'ils soient situés dans des secteurs de la ville ayant des codes postaux différents (<ref-ruling> consid. 4b/ee p. 322).
Le terme quartier, désignant la quatrième partie d'un tout, a été transposée sur les villes romaines planifiées, qui étaient partagées en quatre parties par deux routes perpendiculaires se croisant en leur milieu (Viertel en allemand). Dans son acception actuelle, le quartier désigne la division administrative d'une ville ou la partie d'une ville, qui a sa physionomie propre et une certaine unité (cf. Le Grand Robert de la langue française). S'il forme un ensemble sur les plans historique, géographique, sociologique ou administratif, un quartier suppose également une certaine étendue et ne peut guère se limiter à quelques immeubles ou pâtés de maisons.
Aucun motif ne justifie de retenir à l'<ref-law> une notion plus restreinte du quartier. En particulier, celui-ci ne se réduit pas à un complexe architectural homogène. A cet égard, l'<ref-law>, qui précise comment calculer les loyers usuels du quartier, prescrit de prendre en compte notamment l'emplacement et l'année de construction des objets présentés à la comparaison; cela atteste que, pour faire partie d'un même quartier au sens du droit du bail, les immeubles n'ont pas nécessairement à bénéficier d'une situation semblable, ni à dater de la même période de construction. L'idée est bien plutôt que le quartier couvre une certaine surface et qu'il peut être hétérogène (dans ce sens: Peter Higi, Zürcher Kommentar, 4e éd. 1998, n° 34 ad <ref-law>). Il est à relever par ailleurs que l'<ref-law> met sur le même plan "localité" et "quartier". Or, par localité, on entend un village ou une petite ville, soit précisément une entité pouvant avoir une certaine étendue et comporter différents types de bâtiments.
Le découpage administratif de la ville ou la division en quartiers historiques sera souvent déterminant. Mais des exceptions à cette règle sont envisageables, par exemple lorsque l'objet dont le loyer doit être examiné est situé à la limite de deux quartiers (cf. SVIT-Kommentar, 3e éd. 2008, n° 11 ad <ref-law>, p. 554; Higi, op. cit., nos 33 et 35 ad <ref-law>). Il n'est ainsi guère possible de poser une règle générale à ce sujet; par rapport à un objet donné, la délimitation de la portion de territoire à prendre en compte à titre de quartier dépendra essentiellement de la situation de fait et de l'histoire des lieux.
Pour ces motifs, l'autorité cantonale est, de par sa connaissance des circonstances locales, la mieux à même de cerner le quartier dans un cas particulier. Le Tribunal fédéral n'interviendra qu'avec retenue, lorsqu'il ressort de la décision cantonale que l'autorité précédente a méconnu la notion de quartier ou n'en a pas tenu compte, qu'elle s'est fondée sur des faits qui ne devaient jouer aucun rôle ou, au contraire, qu'elle n'a pas pris en considération des faits pertinents, ou encore qu'elle a abouti à un résultat manifestement erroné (cf. <ref-ruling> consid. 3.3. i.f. p. 762).
2.2.2 En l'espèce, la Chambre d'appel a examiné uniquement neuf objets comparatifs situés dans le périmètre précité, dont ne fait du reste pas partie la rue Charles-Sturm où se trouve l'appartement occupé par les intimés; ce dernier est en bordure du boulevard des Tranchées, lequel délimite le périmètre en question. La cour cantonale a exclu deux appartements situés dans le périmètre retenu, au motif qu'ils ne se trouvaient pas à proximité immédiate de rues comportant un trafic automobile important. Elle a considéré au surplus que les autres objets présentés ne relevaient pas du même quartier au sens de l'<ref-law> et pouvaient d'emblée être éliminés de la comparaison.
Le périmètre défini par la Chambre d'appel a la forme d'un quadrilatère irrégulier d'environ 200 mètres sur 400 mètres. Il ne correspond ni à un quartier historique, ni à une entité administrative. Sa superficie est nettement plus restreinte que celle du quartier Centre-Plainpalais-Acacias ou des quartiers adjacents des Eaux-Vives et de Champel. Les secteurs hors de ce périmètre n'ont pas été pris en compte au seul motif qu'ils présentent un tissu urbain différent, comprenant des constructions plus récentes et offrant un caractère plus résidentiel. Ce faisant, la Chambre d'appel a apparemment exclu ces secteurs de la ville sur la base d'une appréciation globale, parce qu'ils semblent moins susceptibles de receler des appartements comparables à celui occupé par les intimés. Il ne s'agit pas là d'un critère définissant le quartier au sens de l'<ref-law>. Un tel mode de procéder revient à déclarer d'emblée non comparables tous les objets sis dans ces secteurs, sans avoir à examiner concrètement s'ils le sont au regard des critères de l'<ref-law>. La Chambre d'appel ne pouvait pas restreindre de la sorte les possibilités de la recourante de présenter des objets comparatifs. Il lui appartenait de définir d'abord le quartier indépendamment des critères de comparaison fixés à l'<ref-law>, puis d'examiner, sur la base de ces critères, les objets comparatifs présentés par la recourante qui sont situés dans le quartier tel que précédemment défini. Le grief tiré de la violation de l'<ref-law> est fondé.
3. La recourante reproche également à la Chambre d'appel d'avoir violé l'<ref-law> et l'<ref-law> lors de l'examen des neuf objets comparatifs pris en considération. Le moyen n'est pas devenu sans objet. En effet, le Tribunal fédéral peut éventuellement éviter un renvoi et statuer lui-même au fond s'il arrive à la conclusion que cinq de ces neuf objets sont effectivement comparables à l'appartement occupé par les intimés (cf. consid. 3.1 infra).
3.1 Selon l'<ref-law>, les loyers déterminants pour la constatation des loyers usuels, dans la localité ou le quartier, sont ceux des logements comparables à la chose louée, quant à leur emplacement, dimension, équipement, état et année de construction (al. 1), à l'exclusion des loyers résultant de ce qu'un bailleur ou un groupe de bailleurs domine le marché (al. 3). En règle générale, le juge doit disposer de cinq éléments de comparaison au moins. Il lui appartient de procéder à des comparaisons concrètes. L'autorité cantonale de dernière instance indiquera exactement les critères sur lesquels elle s'est fondée. Sur cette base, le Tribunal fédéral contrôle librement si les loyers usuels sont établis conformément au droit fédéral (<ref-ruling> consid. 4a p. 319; arrêt 4C.265/2000 du 16 janvier 2001 consid. 4, in SJ 2001 I p. 247). Les loyers de référence doivent eux-mêmes ne pas être abusifs; il est donc nécessaire, en principe, de les adapter aux baisses du taux hypothécaire survenues depuis le moment où ils ont été fixés (<ref-ruling> consid. 5a p. 412 ss).
Aux termes de l'<ref-law>, le juge établit d'office les faits et les parties sont tenues de lui soumettre toutes les pièces nécessaires. Selon la jurisprudence relative à cette disposition, le juge n'a pas à instruire d'office le litige lorsqu'un plaideur renonce à expliquer sa position, mais il doit interroger les parties et les informer de leur devoir de collaborer à l'instruction et de fournir des preuves. Si des motifs objectifs le conduisent à soupçonner que les allégations et offres de preuves d'une partie sont lacunaires, il doit inviter cette partie à compléter ses moyens (<ref-ruling> consid. 4a p. 238 s.).
3.2 Les neuf éléments de comparaison pris en compte par la cour cantonale doivent être examinés à l'aune de ces principes.
3.2.1 La Chambre d'appel a écarté six objets parce qu'ils ne répondaient pas au critère de l'année de construction. Cinq appartements sont situés dans des immeubles construits en 1921 et le bâtiment abritant le sixième logement date de 1931; l'immeuble où logent les intimés ayant été construit en 1893, l'écart avec les exemples présentés est de vingt-huit, respectivement trente-huit ans.
Selon la jurisprudence, des immeubles datant des deux premières décennies du vingtième siècle sont comparables sous l'angle de l'année de construction (<ref-ruling> consid. 4b/aa p. 320). Par la suite, le Tribunal fédéral a précisé qu'une différence de plus de vingt ans ne permettait en tout cas pas de ranger deux bâtiments dans la même période de construction (arrêt 4C.40/2001 du 15 juin 2001 consid. 5c/bb). Un assouplissement de la règle des vingt ans ne se justifie pas. En effet, un certain schématisme s'impose dans ce domaine, afin d'assurer la prévisibilité du droit et l'égalité de traitement.
C'est dès lors à bon droit que la cour cantonale a éliminé de la comparaison les six exemples précités.
3.2.2 Il reste trois objets - désignés sous les nos 11, 21 et 23 des pièces déposées par la bailleresse -, ce qui, en tout état de cause, est insuffisant pour démontrer que le loyer payé par les intimés est inférieur aux loyers usuels du quartier. Cela étant, les trois éléments de comparaison précités appellent les observations suivantes.
La Chambre d'appel a écarté l'appartement de 180 m2 situé dans l'immeuble sis à la route de Florissant ... (objet n° 11) notamment parce qu'il comporte sept pièces alors que le logement occupé par les intimés n'en a que six. Or, si le nombre de pièces est déterminant lorsqu'il s'agit de comparer des appartements plutôt petits, ce critère l'est beaucoup moins lorsque la comparaison porte sur des appartements de grande dimension. Ainsi, le Tribunal fédéral a jugé que des appartements de 160 m2 et 171 m2, voire de 142 m2 étaient comparables selon le critère de la dimension, même si les uns comportaient sept pièces et les autres comprenaient six pièces ou six pièces et demie (<ref-ruling> consid. 4b/cc p. 321). En l'espèce, l'objet n° 11, d'une surface de 180 m2, ne saurait être exclu de la comparaison avec l'appartement de 174 m2 loué par les intimés parce qu'il comprend une pièce de plus.
La Chambre d'appel a invoqué deux autres motifs pour écarter l'objet n° 11: "différence entre l'état général de l'immeuble (excellent/bon)" et "différence dans l'état de la cuisine (agencée/non agencée)". Faute de description plus précise de l'état réel des immeubles en cause, la présentation sommaire figurant dans l'arrêt attaqué ne répond pas à l'exigence jurisprudentielle d'une comparaison concrète, fondée sur l'indication exacte des critères utilisés. En ce qui concerne la cuisine, les précisions manquent également. Un agencement - dont on ignore s'il est récent ou non - garnissant une cuisine non équipée d'appareils ménagers ne constitue pas une différence notable excluant à elle seule toute comparaison avec un appartement dépourvu de cuisine agencée. Il s'ensuit que la cour de céans n'est pas en mesure de juger si l'objet n° 11 est comparable à l'appartement occupé par les intimés.
Les juges genevois ont éliminé de la comparaison l'appartement de six pièces et demie, d'une surface de 144 m2, situé dans l'immeuble sis à la rue du Mont-de-Sion ... (objet n° 21) en raison de l'absence de référence au taux hypothécaire sur la base duquel le loyer avait été fixé. Bien qu'elle n'ait pas relevé d'autre motif excluant une comparaison, la cour cantonale n'a pas invité la recourante à compléter ses allégations avant de fonder sa décision sur cette seule omission. Ce faisant, elle a violé la maxime d'office. La Chambre d'appel a dès lors méconnu le droit fédéral en refusant de prendre en considération l'objet n° 21 pour le motif invoqué.
La cour cantonale a écarté l'appartement de six pièces situé à la même adresse que l'objet n° 21 notamment parce que sa surface (136 m2) était environ 20 % inférieure à celle de l'appartement occupé par les intimés (174 m2). Cette conclusion est conforme à la jurisprudence, qui a déjà exclu la comparaison entre un appartement de 171 m2 et un appartement de 130 m2 (<ref-ruling> consid. 4b/cc p. 321).
4. La recourante se plaint enfin d'une violation de l'<ref-law> aux termes duquel les statistiques officielles doivent être prises en considération. Dans un arrêt rendu en séance publique, le Tribunal fédéral a jugé récemment que les statistiques genevoises ne remplissaient pas les conditions de cette disposition (arrêt 4A_472/2007 du 11 mars 2008). En l'état, il n'y a pas à revenir sur cette jurisprudence.
5. Sur le vu de ce qui précède, le recours doit être admis partiellement. L'arrêt attaqué sera annulé et la cause renvoyée à la Chambre d'appel pour nouvelle décision. Il appartiendra à la cour cantonale, notamment, de déterminer si des éléments comparatifs qu'elle avait écartés d'emblée peuvent être considérés comme compris dans le même quartier que l'appartement loué par les intimés et, le cas échéant, de procéder à la comparaison concrète.
6. La recourante n'obtient que partiellement gain de cause puisque seule sa conclusion subsidiaire est admise. Dans ces conditions, il se justifie de partager les frais de la procédure fédérale de manière égale entre les parties (<ref-law>). Par ailleurs, les dépens seront compensés (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est partiellement admis, l'arrêt attaqué est annulé et l'affaire est renvoyée pour nouvelle décision à la Chambre d'appel en matière de baux et loyers du canton de Genève.
2. Les frais judiciaires, arrêtés à 2'500 fr., sont mis par moitié à la charge de la recourante et par moitié à la charge des intimés, solidairement entre eux.
3. Il n'est pas alloué de dépens.
4. Le présent arrêt est communiqué aux mandataires des parties et à la Chambre d'appel en matière de baux et loyers du canton de Genève.
Lausanne, le 15 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 Godat Zimmermann