Faits:
A. A._ a déposé plainte pénale le 29 avril 2012 contre B._, auquel elle reproche de l'avoir agressée le soir du 28 avril 2012. Le 28 septembre 2012, elle a requis l'assistance judiciaire, motifs pris de son indigence et de la difficulté de l'affaire. Le 26 octobre 2012, le Ministère public a rejeté la demande de défense d'office, retenant que l'action civile était vouée à l'échec, compte tenu notamment d'une expertise médicale concluant à une auto-agression de la plaignante.
B. Par arrêt du 29 novembre 2012, la Chambre pénale de recours de la Cour de justice de la République et canton de Genève a rejeté le recours de A._ contre la décision du Ministère public. Elle a considéré que l'action civile paraissait vouée à l'échec et que les faits, s'agissant d'une agression, même contestée, ne présentaient aucune difficulté.
C. Agissant par la voie du recours en matière pénale, A._ demande au Tribunal fédéral d'annuler l'arrêt cantonal et de lui accorder le bénéfice de l'assistance judiciaire, subsidiairement de renvoyer la cause à la Cour de justice pour nouvelle décision dans le sens des considérants. Elle requiert en outre l'assistance judiciaire pour la présente procédure. La Cour de justice se réfère à son arrêt. Le Ministère public conclut au rejet du recours.
Considérant en droit:
1. Selon l'art. 78 al. 1 LTF, le Tribunal fédéral connaît des recours contre les décisions rendues en matière pénale. La recourante a la qualité pour agir au sens de l'art. 81 al. 1 LTF, le refus de lui accorder l'assistance judiciaire étant susceptible de lui causer un dommage irréparable au sens de l'art. 93 al. 1 let. a LTF, dans la mesure où la procédure préliminaire n'est pas encore close (ATF 133 IV 335 consid. 4 p. 338; 129 I 281 consid. 1.1 p. 283; 129 I 129 consid. 1.1 p. 131). Pour le surplus, le recours est interjeté en temps utile (art. 100 al. 1 LTF) contre une décision prise en dernière instance cantonale (art. 80 LTF), de sorte qu'il y a lieu d'entrer en matière.
2. La recourante se plaint d'une violation de l'art. 136 al. 1 CPP. Elle fait valoir, outre son indigence - qui n'a pas été remise en cause par l'instance précédente -, que son action civile n'est pas dénuée de chances de succès.
2.1 Selon l'art. 136 al. 1 CPP, la direction de la procédure accorde entièrement ou partiellement l'assistance judiciaire à la partie plaignante indigente (let. a) pour lui permettre de faire valoir ses prétentions civiles si l'action ne paraît pas vouée à l'échec (let. b). D'après la jurisprudence, un procès est dépourvu de chances de succès lorsque les perspectives de le gagner sont notablement plus faibles que les risques de le perdre, et qu'elles ne peuvent donc être considérées comme sérieuses, de sorte qu'une personne raisonnable et de condition aisée renoncerait à s'y engager en raison des frais qu'elle s'exposerait à devoir supporter; il ne l'est en revanche pas lorsque les chances de succès et les risques d'échec s'équilibrent à peu près, ou que les premières ne sont que légèrement inférieures aux secondes. L'élément déterminant réside dans le fait que l'indigent ne doit pas se lancer, parce qu'il plaide aux frais de la collectivité, dans des démarches vaines qu'une personne raisonnable n'entreprendrait pas si, disposant de moyens suffisants, elle devait les financer de ses propres deniers (cf. ATF 138 III 217 consid. 2.2.4 p. 218; 129 I 129 consid. 2.2 p. 133 ss).
2.2 En l'espèce, la cour cantonale a considéré que le Ministère public était fondé à retenir l'échec prévisible de l'action civile de la recourante, ce qu'il a fait "compte tenu notamment d'une expertise médicale". Cette expertise médicale concluant à une auto-agression de la recourante, elle a confirmé le refus d'assistance judiciaire. Dans ses déterminations, le Ministère public expose qu'un délai avait été imparti aux parties en application de l'art. 318 CPP pour formuler leurs offres de preuves, et que dans ce cadre des témoins ont été entendus et ont permis d'objectiver la version de B._. Or, les auditions de témoins ont eu lieu après la décision initialement querellée, de sorte qu'elles ne sauraient entrer en considération pour justifier le refus d'assistance judiciaire. Il en va de même des défauts répétés de la recourante aux audiences du Ministère public, lesquels ont commencé après le 28 septembre 2012. Dès lors, seuls le constat médical du 22 mai 2012 et les déclarations fluctuantes de la plaignante étaient pertinents au moment du dépôt de la demande d'assistance judiciaire.
L'état de fait de l'arrêt cantonal apparaît toutefois particulièrement lacunaire en tant qu'il n'expose ni la teneur du rapport médical ni le contenu des diverses déclarations des parties. Cela étant, conformément à l'art. 105 al. 2 LTF, l'état de fait doit être complété par les éléments ressortant du dossier, qui seront repris ci-dessous dans la mesure utile.
2.3 Le rapport d'expertise du 22 mai 2012 indique que les estafilades et les plaies constatées sur la recourante ont été provoquées par un objet tranchant. Selon les médecins, leurs caractéristiques et localisation parlent en faveur d'une auto-agression. Ce rapport a été établi uniquement sur la base de l'auscultation de la recourante lors de son admission à l'hôpital au soir de l'agression.
Il est vrai que les premières déclarations de la recourante ne concordaient pas avec les lésions constatées ni avec les témoignages recueillis oralement le soir des faits par la police. Elles ont en outre été par la suite fluctuantes. La recourante a certes présenté le déroulement des événements de façon détaillée, mais s'est contredite d'une audition à l'autre. Elle a par ailleurs donné des informations inexactes s'agissant du sort d'une autre affaire pénale l'opposant à B._.
Toutefois, on ne pouvait pas d'emblée retenir l'hypothèse d'une automutilation: celle-ci n'est devenue vraisemblable qu'avec l'audition des témoins, qui ont confirmé la version de B._, puis l'audition des médecins qui avaient traité la recourante lors de son admission à l'hôpital le soir des faits et rédigé le rapport - peu détaillé - du 3 mai 2012. Le seul fait que le Ministère public ait jugé utile - très probablement à juste titre - d'entendre ces personnes démontre que, si des doutes étaient déjà soulevés quant à l'identité de l'agresseur, voire quant à l'existence même d'un agresseur, une instruction complémentaire était nécessaire pour éclaircir les faits. Dans ces conditions, au stade du dépôt de la demande d'assistance judiciaire, une éventuelle action civile ne pouvait être considérée comme vouée à l'échec. La nature de l'affaire justifiait au surplus la présence d'un conseil (art. 136 al. 2 let. c CPP).
3. Le Ministère public et la cour cantonale constataient encore que la recourante n'avait pas esquissé les prétentions civiles qu'elle entendait faire valoir. Or la recourante s'est portée partie plaignante sur le plan civil dès sa première audition formelle par la police le 29 avril 2012. Elle a confirmé sa position lors de son audition par le Ministère public le 16 juillet 2012. Quant au détail de ses prétentions, elle peut les présenter au plus tard durant les plaidoiries (art. 123 al. 2 CPP). La nature de l'affaire permettant pour le surplus de comprendre quelles prétentions civiles pourraient être élevées, l'absence de précisions de la part de la plaignante à ce stade de la procédure est sans incidence sur son droit à l'assistance judiciaire.
4. Il résulte de ce qui précède que le recours doit être admis. L'arrêt entrepris est annulé et la cause est renvoyée au Ministère public pour nouvelle décision au sens des considérants. En vertu de l'art. 68 al. 1 et 2 LTF, la recourante, qui obtient gain de cause avec l'aide d'une avocate, a droit à des dépens à la charge du canton de Genève. Conformément à l'art. 66 al. 4 LTF, il n'est pas perçu de frais judiciaires.
Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est admis; l'arrêt attaqué est annulé et la cause est renvoyée au Ministère public pour nouvelle décision dans le sens des considérants.
2. Une indemnité de dépens de 1'500 fr. est allouée à l'avocate de la recourante, à la charge du canton de Genève.
3. Il n'est pas perçu de frais judiciaires.
4. Le présent arrêt est communiqué à la mandataire de la recourante, au Ministère public et à la Cour de justice de la République et canton de Genève, Chambre pénale de recours.
Lausanne, le 15 avril 2013
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Président: Fonjallaz
La Greffière: Sidi-Ali