Faits: A. Dans le cadre d'une instruction ouverte à la fin 2001 par le juge d'instruction du canton de Vaud (ci-après: le juge d'instruction) pour diverses escroqueries et faux dans les titres, les autorités françaises ont arrêté A._, qui a été détenu à titre extraditionnel du 29 janvier 2002 au 29 juillet 2003, avant d'être relaxé et placé sous contrôle judiciaire. Il a ensuite été déclaré en fuite par les autorités françaises, de sorte que le juge d'instruction a émis un mandat d'arrêt international. A._ a été à nouveau arrêté en France le 8 juillet 2005 et placé en détention extraditionnelle jusqu'à sa remise aux autorités suisses le 25 septembre 2006. Depuis cette date, il est en détention préventive. A._ a été inculpé d'escroquerie par métier, subsidiairement escroquerie et tentative d'escroquerie, d'utilisation frauduleuse d'un ordinateur, de faux dans les titres et de faux dans les certificats. Il est soupçonné de faire partie d'une bande organisée pour commettre des escroqueries et on lui reproche, en substance, d'avoir ouvert une douzaine de comptes bancaires en utilisant des chèques et des documents d'identité volés et falsifiés, encaissant ainsi plus de 500'000 fr. entre avril et novembre 2001. Le 28 mars 2007, A._ a présenté une requête de mise en liberté provisoire au juge d'instruction, qui l'a rejetée par ordonnance du 29 mars 2007. Constatant l'existence d'un risque de fuite et d'un danger de réitération, ce magistrat a considéré que le maintien en détention préventive de l'intéressé respectait le principe de la proportionnalité. B. A._ a recouru contre cette ordonnance devant le Tribunal d'accusation du Tribunal cantonal du canton de Vaud (ci-après: le Tribunal cantonal). Invoquant le principe de la proportionnalité, il se plaignait d'une durée excessive de sa détention extraditionnelle et préventive, qui dépassait les trois ans. Le Tribunal cantonal a rejeté le recours par arrêt du 11 avril 2007, considérant que la durée de la détention préventive - qui atteignait 38 mois en comptant la détention extraditionnelle - n'était pas excessive, dans la mesure où la peine encourue par le prévenu était sensiblement supérieure. C. Agissant par la voie du recours en matière pénale, A._ demande au Tribunal fédéral d'annuler cette décision et d'ordonner sa libération provisoire. Il invoque les dispositions de droit cantonal régissant la détention préventive ainsi que les art. 29 Cst. et 6 par. 1 CEDH. Il requiert en outre l'assistance judiciaire gratuite. Le Tribunal cantonal et le Ministère public ont renoncé à formuler des observations.