Faits: A. B._ a travaillé comme nettoyeuse au service de X._ SA depuis 1997, à raison de 18 heures par semaine. Le 19 février 2002, victime d'un accident de la circulation en tant que passagère, elle a subi un choc à la tête et au genou gauche. Elle n'a repris son activité professionnelle qu'à raison de neuf heures par semaine à compter du 2 mai 2002. Le cas a été pris en charge par la Caisse nationale suisse d'assurance en cas d'accidents (CNA). Celle-ci a mis fin à ses prestations à compter du 1er septembre 2002; au-delà de cette date, elle ne reconnaissait une responsabilité que pour d'éventuels soins nécessités par l'atteinte au genou gauche. Le 12 septembre 2003, B._ a présenté une demande de prestations auprès de l'Office AI du canton de Fribourg. Après avoir procédé à une enquête économique sur le ménage et pris connaissance de l'expertise du 26 juin 2003 du docteur S._, spécialiste en rhumatologie et médecine interne, ainsi que de celle du 10 novembre 2003 du docteur M._, psychiatre et psychothérapeute (mandatés par l'assurance pour la perte de gain maladie de l'employeur de B._), l'office AI a nié le droit de la prénommée à des prestations (décision du 12 mars 2004). Sous l'angle somatique, il a fait siennes les conclusions du docteur S._. Il a ainsi retenu que l'assurée présentait des cervicalgies chroniques communes (status après accident de la circulation avec vraisemblable entorse cervicale; protrusion discale C5-C6 banale; spondylarthrose discrète C5-C6), des gonalgies gauches post-traumatiques anamnestiques (syndrome fémoro-patellaire modéré à gauche) et un syndrome somatoforme douloureux persistant (à l'exclusion d'une fibromyalgie). D'un point de vue ostéo-articulaire, ces affections n'empêchaient pas l'intéressée d'exercer son ancienne occupation de nettoyeuse à raison d'environ vingt heures par semaine ou une activité adaptée à plein temps. Quant aux limitations de la mobilité du rachis cervical révélées par l'examen clinique, elles étaient difficilement interprétables eu égard à l'attitude de résistance manifestée par l'assurée, laquelle présentait en outre des signes comportementaux clairs décrits par la littérature médicale consacrée aux signes de non-organicité dans la région cervicale. Enfin, il y avait discordance entre les constatations cliniques objectives concernant le genou gauche et les doléances de l'assurée. Sous l'angle psychique, l'office AI s'est fondé sur les conclusions du docteur M._ lequel a retenu le (seul) diagnostic de dysthymie, sans répercussion sur l'exercice d'une activité lucrative. Par ailleurs, l'Office AI a considéré que si l'assurée n'avait pas été atteinte dans sa santé, elle aurait exercé une activité lucrative à mi-temps et se serait occupée de son ménage pour le surplus. Par comparaison des revenus et au vu des résultats de l'enquête sur le ménage, l'Office AI a évalué le degré d'invalidité de B._ à 6.55%, taux insuffisant pour ouvrir le droit à des prestations. Saisie d'une opposition contre sa décision du 12 mars 2004, l'administration a confirmé son point de vue par une nouvelle décision du 20 avril 2005. B. B._ a déféré la décision sur opposition de l'Office AI à la Cour des assurances sociales du Tribunal administratif du canton de Fribourg qui l'a déboutée par jugement du 31 janvier 2007. C. B._ interjette un recours en matière de droit public contre ce jugement, dont elle demande l'annulation. Elle conclut, sous suite de frais et dépens, au renvoi de la cause à l'administration pour nouvelle instruction. L'Office AI propose le rejet du recours. L'Office fédéral des assurances sociales ne s'est pas déterminé.