Faits:
A. X._ SA (ci-après: la Société) est une société anonyme constituée le *** 1996 qui a pour but l'exploitation d'un atelier d'architecture. En 2004, A._ et B._ étaient les seuls actionnaires salariés de la Société qui comptait également quinze autres employés non actionnaires.
Pour la prévoyance professionnelle obligatoire et surobligatoire, la Société a affilié l'ensemble de ses employés à la Caisse D._ (ci-après: la Caisse). A compter du 1er janvier 2002, il existait deux plans de prévoyance, l'un pour les membres de la direction et l'autre pour le personnel de la Société.
Le 21 décembre 2004, la Société a versé à la Caisse des montants de respectivement 134'587 fr. 90 et 116'226 fr. 40 en faveur de ses deux actionnaires salariés A._ et B._. Dans la déclaration d'impôts 2004, ces montants ont été déduits comme charges sociales, le bénéfice net imposable étant de 105'262 fr.
B. Dans deux décisions de taxation du 8 août 2006, valant l'une pour l'impôt cantonal et communal et l'autre pour l'impôt fédéral direct, le Service des contributions du canton de Neuchâtel a considéré que le versement des montants précités constituait une distribution dissimulée de bénéfice et a réintégré ceux-ci dans le bénéfice imposable.
A l'encontre de ces prononcés, la Société a formé une réclamation qui a été rejetée par décision du 18 octobre 2006.
La Société a déféré cette décision au Tribunal fiscal du canton de Neuchâtel, qui a admis le recours par arrêt du 28 novembre 2008.
A l'encontre de ce jugement, le Service des contributions a recouru au Tribunal administratif du canton de Neuchâtel, qui a admis le recours par arrêt du 8 avril 2010.
C. Agissant par la voie du recours en matière de droit public, la Société demande au Tribunal fédéral, sous suite de frais et dépens, d'annuler l'arrêt du Tribunal administratif du 8 avril 2010 et, principalement, de confirmer le jugement rendu le 28 novembre 2008 par le Tribunal fiscal; à titre subsidiaire, elle conclut à ce que la cause soit renvoyée à l'une des instances précédentes pour nouvelle décision.
L'autorité précédente, le Service des contributions, ainsi que l'Administration fédérale des contributions concluent au rejet du recours. Le Tribunal fiscal renonce à se déterminer et renvoie à la motivation de son arrêt du 28 novembre 2008.

Considérant en droit:
1. 1.1 L'arrêt attaqué concerne le calcul du bénéfice imposable pour l'impôt cantonal et communal et l'impôt fédéral direct de la période fiscale 2004. Comme ces domaines relèvent du droit public et qu'aucune des exceptions prévues à l'<ref-law> n'est réalisée, la voie du recours en matière de droit public est ouverte sur la base de l'<ref-law>. L'art. 146 de la loi fédérale du 14 décembre 1990 sur l'impôt fédéral direct (LIFD; RS 642.11) confirme du reste l'existence de cette voie de droit pour l'impôt fédéral direct. S'agissant de l'impôt cantonal et communal, l'imposition du bénéfice étant une matière harmonisée aux art. 24 ss de la loi fédérale du 14 décembre 1990 sur l'harmonisation des impôts directs des cantons et des communes (LHID; RS 642.14), la voie du recours en matière de droit public est donc aussi réservée par l'<ref-law> (cf. <ref-ruling> ss).
1.2 L'autorité précédente a rendu une seule décision valant pour l'impôt cantonal et communal et l'impôt fédéral direct, ce qui est admissible (cf. <ref-ruling> consid. 1.3.1 p. 262 s.), dès lors que la question juridique à trancher est réglée de la même façon en droit fédéral et dans le droit cantonal harmonisé (voir infra consid. 4). Dans ces circonstances, on ne peut reprocher à la recourante d'avoir formé les mêmes griefs et pris des conclusions valant pour les deux catégories d'impôts dans son recours au Tribunal fédéral (cf. <ref-ruling> consid. 1.3.3 p. 264).
1.3 Déposé en temps utile (cf. <ref-law>), le recours est dirigé contre une décision finale (cf. <ref-law>) rendue par une autorité cantonale supérieure de dernière instance (cf. art. 86 al. 1 let. d et al. 2 LTF). Par ailleurs, il a été interjeté par la contribuable destinataire de la décision attaquée et qui a un intérêt digne de protection à son annulation ou sa modification (cf. <ref-law>). Il convient donc d'entrer en matière.
1.4 Le Tribunal fédéral statue sur la base des faits constatés par l'autorité précédente (cf. <ref-law>), à moins que ces faits n'aient été établis de façon manifestement inexacte - soit arbitrairement (<ref-ruling> consid. 7.1 p. 398) - ou en violation du droit au sens de l'<ref-law>, auquel cas il peut les rectifier ou les compléter d'office (cf. <ref-law>). Aucun fait nouveau ni preuve nouvelle ne peut être présenté devant lui, à moins de résulter de la décision de l'autorité précédente (<ref-law>). Cette dernière exception vaut notamment, lorsque c'est la décision de l'autorité précédente qui, pour la première fois, rend pertinent ce fait ou ce moyen de preuve (arrêt 4A_18/2010 du 15 mars 2010 consid. 2 non pub. aux <ref-ruling>).
I. Impôt fédéral direct
2. 2.1 Aux termes de l'<ref-law>, l'impôt sur le bénéfice a pour objet le bénéfice net. Selon l'<ref-law>, le bénéfice net imposable comprend notamment le solde du compte de résultats (let. a), ainsi que tous les prélèvements opérés sur le résultat commercial avant le calcul du solde du compte de résultats, qui ne servent pas à couvrir des dépenses justifiées par l'usage commercial (let. b). Au nombre de ces prélèvements figurent les distributions dissimulées de bénéfice et les avantages procurés à des tiers qui ne sont pas justifiés par l'usage commercial (let. b 5e tiret).
Selon la jurisprudence, il y a distribution dissimulée de bénéfice, lorsqu'une personne morale fait à ses actionnaires ou à toute personne la ou les touchant de près, sans contre-prestation équivalente, une prestation appréciable en argent, qu'elle n'aurait pas consentie à des tiers dans les mêmes circonstances (<ref-ruling> consid. 5.1 p. 607). Encore faut-il que les organes de la société aient pu reconnaître le caractère insolite de cette prestation (<ref-ruling> consid. 2b p. 435; arrêt 2C_421/2009 du 11 janvier 2010 consid. 3.1 et la jurisprudence citée).
2.2 D'après l'<ref-law>, les charges justifiées par l'usage commercial comprennent notamment les versements à des institutions de prévoyance en faveur du personnel de l'entreprise, à condition que toute utilisation contraire à leur but soit exclue (let. b). L'art. 81 al. 1 de la loi fédérale du 25 juin 1982 sur la prévoyance professionnelle vieillesse, survivants et invalidité (LPP; RS 831.40), dans sa teneur en vigueur jusqu'au 31 décembre 2004, prévoyait de même que les contributions des employeurs à des institutions de prévoyance sont considérées comme des charges d'exploitation en matière d'impôts directs perçus par la Confédération, les cantons et les communes.
Dans la mesure où les statuts ou les règlements de l'institution de prévoyance le prévoient expressément, l'employeur peut verser, en sus des contributions ordinaires au fonds de prévoyance, des contributions extraordinaires uniques dans le but de racheter des années de cotisation des employés ou afin d'alimenter un fonds de réserve ou les moyens à la libre disposition de l'institution de prévoyance. Tant le financement que la mise en oeuvre de la prévoyance obligatoire et surobligatoire doivent être fixés à l'avance dans les statuts et les règlements selon des critères schématiques et objectifs et respecter, en particulier, les principes d'adéquation, de collectivité (solidarité), d'égalité de traitement, de planification ainsi que d'assurance (<ref-ruling> consid. 4.1 p. 603 s. et la jurisprudence citée; pour une définition de ces principes, cf. arrêts 2A.45/2003 du 29 juillet 2004 consid. 3, in Archives 74 p. 749, RF 60/2005 p. 32; 2A.554/2006 du 7 mars 2007 consid. 5, in RF 62/2007 p. 636; voir aussi Gladys Laffely Maillard, in Commentaire romand, Impôt fédéral direct, 2008, nos 31 ss ad <ref-law>).
Même si ces principes sont respectés, les contributions règlementaires ordinaires et extraordinaires qu'une société de capitaux verse comme employeur en faveur des détenteurs de droits de participation peuvent constituer une distribution dissimulée de bénéfice, lorsque des mesures de prévoyance ne sont pas prises, ou n'auraient pas été prises, aux mêmes conditions, en faveur des employés ne participant pas au capital (<ref-ruling> consid. 5 p. 607 ss). Il convient de déterminer sur la base de l'ensemble des circonstances du cas particulier si la solution retenue pour la prévoyance revient à avantager les détenteurs de droits de participation, ou si elle se justifie au regard de la situation de l'entreprise (arrêt 2A.404/2001 du 20 mars 2002 consid. 2.3.3, in RDAF 2004 II p. 53, StE 2002 B 72.14.1 no 20, RF 57/2002 p. 488; Robert Danon, in Commentaire romand, op. cit., no 147 ad art. 57-58 LIFD; Laffely Maillard, in Commentaire romand, op. cit., no 14 ad <ref-law>).
3. 3.1 Le Tribunal fiscal s'est fondé sur l'argumentation de la recourante selon laquelle les actionnaires salariés avaient fait assurer intégralement le salaire des autres employés. Afin d'éviter de trop charger financièrement la Société et de parer à d'éventuelles difficultés économiques, ils avaient renoncé à le faire pour eux-mêmes, tout en se réservant de rattraper le retard de cotisations lorsque le résultat de l'exercice le permettrait. Le rachat litigieux tendait précisément à un tel rattrapage, ce qui était admissible.
3.2 Pour sa part, l'autorité précédente a d'abord observé que les deux plans de prévoyance différaient uniquement sur le point des cotisations d'épargne, qui étaient plus élevées pour les membres de la direction; il n'était en outre pas contesté que les deux plans respectaient les principes de la prévoyance. Le Tribunal administratif a ensuite relevé que le salaire assuré - à savoir 192'600 fr. - des deux actionnaires était resté le même après les versements litigieux et qu'en outre une partie - se montant à 39'520 fr. pour 2004 - du salaire brut déterminant pour les cotisations AVS n'était pas soumise à des cotisations de prévoyance. Il en a déduit que les contributions en cause ne tendaient pas à relever le montant du salaire assuré, comme le Tribunal fiscal l'avait admis, mais à combler des lacunes de cotisations. Or, ce rachat avait été effectué seulement en faveur des actionnaires, alors qu'un potentiel de rachat existait également pour d'autres employés, dont en particulier C._. L'autorité précédente a estimé que, dans ces conditions, les versements litigieux avaient leur origine dans les droits de participation et constituaient une distribution dissimulée de bénéfice.
Le Tribunal administratif a admis l'existence de lacunes de cotisations dans le cas de C._ sur la base d'une "rapide estimation". En effet, selon le certificat de prévoyance, la prestation de libre passage de cet employé de 41 ans se montait à 64'045 fr. 90 au 1er janvier 2003. Calculée sur la base d'un taux de cotisation de 7% pour la tranche d'âge de 35 à 44 ans, la prime pour 2003 était de 10'227 fr. 80. Une règle de trois permettait d'évaluer la cotisation annuelle basée sur un taux de 5% applicable à la tranche d'âge de 25 à 34 ans à 7'305 fr. Compte tenu de ces montants, la prestation de sortie de C._ au 1er janvier 2003 pouvait être estimée de manière très approximative à 143'000 fr. (soit 10 ans à 7'305 fr. + 7 ans à 10'227 fr. 80). Une comparaison de cette somme avec le montant de 64'045 fr. 90 ressortant du certificat de prévoyance au 1er janvier 2003 montrait l'existence d'un potentiel de rachat. Celui-ci était encore accru pour 2004, car la prime du prénommé - qui n'avait pas changé de tranche d'âge - avait été augmentée, ce qui indiquait une augmentation de salaire. Les primes de plusieurs autres employés avaient d'ailleurs également augmenté, ce qui révélait "de probables augmentations de salaire et par conséquent d'autres potentiels de rachat".
3.3 Se plaignant d'arbitraire dans la constatation des faits, la recourante reproche à l'autorité précédente d'avoir admis qu'il lui appartenait de combler la lacune de prévoyance de C._, sans avoir examiné les causes de celle-ci. Elle fait valoir que cette lacune peut être antérieure à l'engagement de cet employé à son service, en alléguant que les rapports de travail n'ont commencé que le 1er octobre 2000 et qu'auparavant C._ avait notamment travaillé comme indépendant. La recourante soutient d'ailleurs qu'en retenant, sur la base de pièces produites dans un autre but, l'existence d'une lacune de prévoyance qu'il lui appartenait de combler, l'autorité précédente a violé son droit d'être entendue, car, à ce stade de la procédure, elle ne serait plus en mesure de prouver que cette lacune est antérieure à l'engagement de l'intéressé à son service.
3.4 Il ressort tant du certificat de prévoyance pour C._ daté du 16 janvier 2003 que d'un "récapitulatif des assurés" établi par la Caisse le 29 juin 2006 (dossier de la cause, sous 8c) que cet employé n'a été assuré auprès de cette institution de prévoyance qu'à partir du 1er octobre 2000 (voir aussi le jugement du Tribunal fiscal du 28 novembre 2008 [p. 10], selon lequel le prénommé n'est employé de la recourante que depuis le 1er octobre 2000). Du moment que l'on ignore tout de son parcours professionnel et de sa couverture de prévoyance antérieurs, il n'est pas possible de déterminer, en l'état, s'il appartenait à la recourante de combler une éventuelle lacune de cotisations le concernant. Cela suppose en effet que cette lacune soit postérieure à son engagement au service de la recourante. Le dossier ne permet pas non plus de trancher la question pour d'autres employés non actionnaires. Dès lors que, comme l'admet l'autorité précédente (cf. jugement attaqué consid. 5d), la question déterminante en l'espèce est de savoir si, outre le compte de prévoyance des deux actionnaires, celui d'autres employés accusait des lacunes de cotisations qu'il appartenait à la recourante de combler, il convient de renvoyer la cause à l'autorité précédente, afin qu'elle complète l'instruction sur ce point et statue à nouveau (cf. <ref-law>). Le Tribunal administratif pourra notamment s'adresser directement à la Caisse pour obtenir ces informations. Dans le cadre de ce complément d'instruction, il sera loisible à la recourante d'alléguer tout fait pertinent et de produire tout moyen de preuve utile, de sorte qu'il n'est pas nécessaire de se prononcer sur le grief de violation de son droit d'être entendue.
II. Impôts cantonal et communal
4. Conformément à l'<ref-law>, l'art. 84 let. b 6e tiret de la loi neuchâteloise du 21 mars 2000 sur les contributions directes (LCdir; RS/NE 631.0) contient la même règle que l'art. 58 al. 1 let. b 5e tiret LIFD en ce qui concerne la réintégration dans le bénéfice imposable des distributions dissimulées de bénéfice. En outre, l'art. 85 let. b LCdir a la même teneur que les <ref-law> et 59 al. 1 LIFD s'agissant de la qualification comme charges justifiées par l'usage commercial des versements à des institutions de prévoyance en faveur du personnel. Par conséquent, il peut être renvoyé s'agissant de l'impôt cantonal et communal à la motivation présentée en matière d'impôt fédéral direct.
5. Vu ce qui précède, le recours doit être admis, la décision attaquée annulée et la cause renvoyée au Tribunal administratif pour qu'il statue à nouveau dans le sens des considérants du présent arrêt.
Succombant, le canton de Neuchâtel - dont l'intérêt patrimonial est en cause - supporte les frais judiciaires (cf. art. 66 al. 1 et 4 LTF). Il doit en outre verser à la recourante une indemnité à titre de dépens (cf. <ref-law>).

Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est admis. La décision du Tribunal administratif du canton de Neuchâtel du 8 avril 2010 est annulée et la cause renvoyée à cette autorité pour qu'elle statue à nouveau dans le sens des considérants du présent arrêt.
2. Des frais judiciaires de 3'000 fr. sont mis à la charge du canton de Neuchâtel.
3. Le canton de Neuchâtel versera à la recourante une indemnité de 3'000 fr. à titre de dépens.
4. Le présent arrêt est communiqué au mandataire de la recourante, au Service des contributions, au Tribunal fiscal et à la Cour de droit public du Tribunal administratif du canton de Neuchâtel, ainsi qu'à l'Administration fédérale des contributions.
Lausanne, le 26 octobre 2010
Au nom de la IIe Cour de droit public
du Tribunal fédéral suisse
Le Président: Le Greffier:
Zünd Vianin