Faits : A.a Julliard SA était une société active dans la gérance, la promotion et le courtage immobiliers, dont les administrateurs étaient Jean-Paul Dumartheray et Patrice Suel. Le capital-actions de la société était détenu par les deux prénommés à raison de 32,5 % chacun et de 35 % par la Fondation de prévoyance en faveur du personnel de la société. Son organe de révision était DPS Conseil & Révision SA, lequel était contrôlé par Thierry Dubuisson et Alain Schmalz. Julliard SA était propriétaire de 522/1000èmes de parts d'étages de l'immeuble dans lequel se trouvaient ses locaux, ce qui constituait son actif le plus substantiel. Ces parts d'étages étaient comptabilisées à hauteur d'environ 1'800'000 fr., valeur très inférieure à leur valeur réelle. Bien que matériellement libres de gage, elles étaient grevées de trois cédules hypothécaires au porteur de 529'308 fr., 556'244 fr. et 1'000'000 fr. A.b Vers le milieu des années 1990, la situation financière de la société s'est dégradée. Au nombre de ses actifs figuraient au compte courant actionnaires une créance de 3'100'000 fr. et au compte débiteurs, une créance de 3'900'000 fr. contre Dumartheray et Suel; ceux-ci avaient financé leur acquisition du capital-actions ainsi que des promotions immobilières déficitaires menées en leur nom propre au moyen de prêts obtenus de la société et non remboursés. B. Au début de l'année 1997, Dumartheray et Suel ont décidé de vendre le capital-actions de Julliard SA pour le prix de 8'200'000 fr. à Epidaure Holding SA (ci-après Epidaure SA). Cette société holding dormante était détenue par un homme de paille, Marc Poons, pour le compte de Gabriele Baciocchi, promoteur immobilier. Ses administrateurs étaient Dubuisson et Schmalz. Les actions de la Fondation de prévoyance devaient être vendues pour le prix de 1'145 fr. l'action, soit 600'000 fr. au total, et celles de Dumartheray et Suel pour le prix, sept fois supérieur, de 7'786 fr. l'action, soit 7'600'000 fr. au total. Le prix devait être payé par Epidaure SA notamment au moyen d'un emprunt de 2'000'000 fr. auprès d'une banque. Simultanément à la prise de contrôle par Epidaure SA de Julliard SA, il a été convenu que la première devait consentir à Dumartherey et Suel une remise de dette de l'ordre de 2'200'000 fr. sur les 3'900'000 fr. prêtés par Julliard SA (cf. let A.b supra). Pour compenser la perte au bilan résultant de cette remise de dette, Julliard SA devait vendre ses parts d'étages à une filiale d'Epidaure SA qui devait être créée à cette fin, Julia SA. L'administrateur unique de cette filiale était Alain Schmalz. Le prix de vente des parts d'étages a été fixé artificiellement, sans tenir compte de la valeur du marché, à 4'000'000 fr. Il devait être payé à raison de 2'000'000 fr. empruntés par Julia SA auprès d'une banque et à raison de 2'000'000 fr. par compensation avec les loyers des dix prochaines années des locaux occupés par Julliard SA en qualité de locataire et dont Julia SA devenait la propriétaire et bailleresse. C. C.a En mai 1997, Epidaure SA et Julia SA ont contacté la Banque cantonale vaudoise (ci-après la BCV ou la banque) pour qu'elle leur fournisse à chacune un financement de 2'000'000 fr. Elles ont expliqué à la banque, soit au gestionnaire de crédit Claude Gindroz, les mécanismes prévus de la vente du capital-actions et de la vente ultérieure des parts d'étages. La banque, par son responsable Pierre-Alfred Palley, a jugé que les opérations, telles que présentées, procédaient d'un montage compliqué et constituaient une "magouillerie". Palley a indiqué qu'il ne voulait pas conclure l'affaire car il ne la comprenait pas; selon lui, un crédit immobilier devait être une chose simple. Il a ainsi demandé un complément d'informations auquel il n'a pas été donné suite. C.b Les 28 mai et 25 juin 1997, Epidaure SA a acquis la totalité du capital-actions de Julliard SA et a payé immédiatement, sous forme de chèques, 2'000'000 fr. La remise de dette prévue de 2'200'000 fr. a été accordée aux deux administrateurs. A la fin juin 1997, la BCV, par un autre responsable, Dionis Maret, lequel ignorait que le dossier avait été précédemment refusé par son collègue Palley, a décidé d'accorder les financements demandés à condition que des garanties immobilières soient fournies. Le 8 juillet 1997, la banque a adressé une offre de prêt de 2'000'000 fr. à chacune des sociétés Epidaure SA et Julia SA. Les deux crédits devaient être garantis par la remise à la banque des trois cédules hypothécaires existantes grevant les parts d'étages (cf. let. A.a supra) et d'une quatrième cédule hypothécaire de 2'000'000 fr. à constituer. C.c Le 16 juillet 1997, Julliard SA a remis à son notaire les trois cédules existantes et lui a demandé de constituer la quatrième. Par courrier du 23 juillet 1997, conformément aux instructions de Julliard SA, le notaire s'est engagé irrévocablement à remettre à la banque les trois cédules existantes et la quatrième, dès que le registre foncier les lui aurait restituées ou délivrées. Le 24 juillet 1997, Julia SA a été constituée et inscrite au registre du commerce. Le même jour, la banque a conclu les deux contrats de prêt de 2'000'000 fr. chacun avec Epidaure SA et Julia SA (cf. let. C.b). Simultanément à la conclusion de ces contrats, Julia SA a signé en faveur de la banque quatre actes de cession en propriété aux fins de garantie portant sur les quatre cédules hypothécaires, d'un montant de 4'000'0000 fr., afin de garantir le prêt qui lui était accordé et quatre autres actes de cession portant sur les mêmes cédules, afin de garantir le prêt octroyé à Epidaure SA. A ce moment, Julia SA n'était pas propriétaire des parts d'étages, ni des cédules hypothécaires, dont elle n'avait par ailleurs pas la possession. C.d Les 25 et 28 juillet 1997, la banque a remis 2'000'000 fr. à chacune des deux sociétés. Conformément à la destination prévue, Epidaure SA a payé à Dumartheray et Suel la seconde tranche du prix du capital-actions, soit 1'500'000 fr. (cf. let. B supra). De son côté, Julia SA a payé la moitié du prix de vente des parts d'étages à Julliard SA (cf. let. B supra). Contrairement aux conditions prévues par les contrats de prêts, ces montants ont été versés avant la remise des cédules hypothécaires, du contrat de bail à conclure avec Julliard SA et de l'attestation du registre foncier établissant la qualité de propriétaire des parts d'étages de Julia SA. C.e Les 6 et 18 novembre 1997, Julliard SA a vendu les parts d'étages à Julia SA pour le prix prévu de 4'000'000 fr., dont 2'000'000 fr. avaient déjà été versés (cf. let. C.d supra), le solde devant être payé par compensation (cf. let. B supra). A la suite de la réquisition de novation du notaire au registre foncier, Julia SA a été inscrite le 19 novembre 1997 comme débitrice des montants indiqués dans les titres et propriétaire des parts d'étages. Le 11 février 1998, les quatre cédules hypothécaires ont été remises à la banque par le notaire. D. Julliard SA a subi des prélèvements dans sa trésorerie effectués par Epidaure SA, après être passée sous le contrôle de celle-ci. Epidaure SA et Julia SA ont rapidement été incapables de procéder au paiement des amortissements et des intérêts des prêts octroyés par la BCV. Le 3 décembre 1999, la banque a dénoncé les quatre cédules au remboursement. Le 10 janvier 2001, elle a requis la réalisation forcée des parts d'étages. Cette réalisation a été suspendue en raison de la saisie pénale des parts d'étages qui a été ordonnée dans le cadre de la procédure pénale ouverte à la suite de la déconfiture de Julliard SA. La faillite de Julliard SA a été prononcée le 3 octobre 2001, avec un découvert estimé à 9'000'000 fr. Par convention du 1er octobre 2003, Julia SA s'est engagée à restituer la propriété des parts d'étages à Julliard en liquidation et à acquiescer à une action en revendication ad hoc, tout en renonçant à exiger la restitution des 2'000'000 fr. qu'elle avait versés. Epidaure SA et Baciocchi ont reconnu devoir à Julliard en liquidation 5'300'000 fr. et 450'000 fr. La procédure pénale ouverte contre Dumartheray, Suel, Dubuisson, Schmalz, Poons et Baciocchi pour abus de confiance et gestion fautive a été classée par décision du Procureur général du 27 mars 2006. Par jugement du 9 mars 2004, sur action en rectification du registre foncier, le Tribunal de première instance de Genève a ordonné que Julliard en liquidation soit à nouveau inscrite comme seule propriétaire des parts d'étages. Celle-ci a alors récupéré les parts d'étages, qui demeurent néanmoins grevées des quatre cédules hypothécaires en mains de la banque. E. Le 2 octobre 2003, Julliard en liquidation a ouvert contre la BCV une action en « constatation de nullité, revendication et révocation » des cédules hypothécaires. Elle a conclu à la condamnation de la banque à lui restituer lesdits titres. Par jugement du 6 septembre 2006, le Tribunal de première instance de Genève a admis l'action, révoqué les actes par lesquels Julliard SA a cédé la propriété aux fins de garantie des quatre cédules hypothécaires et condamné la banque à remettre les titres à l'administration de la faillite. Statuant le 16 mars 2007 sur recours de la banque, la Cour de justice du canton de Genève a réformé le jugement attaqué et rejeté l'action. F. Contre cet arrêt, Julliard en liquidation interjette un recours en matière civile au Tribunal fédéral. Elle conclut à sa réforme en ce sens qu'il soit constaté qu'elle est seule légitime propriétaire des quatre cédules hypothécaires et que la BCV soit condamnée à lui restituer ces titres. L'intimée conclut au rejet du recours. 