Faits: A. Par contrat de leasing du 4 décembre 2002, A._ Ltd, alias A.A._ AG (ci-après: A.A._) a cédé à X._ SA (ci-après: X._) l'usage et la jouissance d'un véhicule automobile d'occasion pour une durée prévue du 9 décembre 2002 au 8 décembre 2005, moyennant paiement d'un loyer mensuel de 1'027 fr., étant précisé que X._ posséderait la voiture pour le compte de A.A._, qui en demeurait propriétaire non seulement pendant toute la durée du contrat, mais également après son échéance ou sa résiliation. Le contrat obligeait X._ à conclure notamment une assurance casco complète pour le véhicule et à céder toutes ses prétentions envers la compagnie d'assurance à A.A._, celle-ci étant en droit, sans y être tenue, de faire valoir les prétentions cédées directement auprès de la compagnie d'assurance. Les conditions générales de A.A._ auxquelles renvoie le contrat entre cette société et X._ prévoyaient qu'en cas de vol du véhicule, le contrat de leasing était automatiquement "dissous" avant son terme et qu'un décompte final des loyers intervenait, X._ ne devant par ailleurs indemniser A.A._, pour la perte du véhicule, qu'à concurrence de la franchise ou de toute autre différence éventuelle entre le dommage effectivement subi par A.A._ et la prestation versée par la compagnie d'assurance. Le 9 décembre 2002, X._ a signé un acte écrit séparé de "cession de casco complète" en faveur de A.A._, par lequel elle déclarait lui céder tous les droits découlant de l'assurance casco - alors en cours de conclusion - avec Y._ Compagnie d'Assurances (ci-après: Y._). A teneur de cet acte, la cession n'était soumise à aucune condition, suspensive ou résolutoire. Par lettre du 11 décembre 2002, A.A._ a informé Y._ que X._ lui avait cédé l'ensemble des droits découlant de l'assurance casco sur la voiture. Elle a joint l'acte de cession en priant l'assurance de bien vouloir lui confirmer son accord avec celui-ci, en y apposant également sa signature. En revanche, Y._ n'a pas été informée de la teneur du contrat de leasing, ni en particulier des conditions générales régissant ce contrat. Le 7 janvier 2003, X._ a conclu avec Y._, avec effet rétroactif au 11 décembre 2002, un contrat d'assurance casco garantissant notamment le risque de vol de l'automobile. Par courrier du 28 janvier 2003, Y._ a confirmé à A.A._ que les prestations d'assurance éventuelles seraient directement versées à cette dernière ou à toute personne désignée par celle-ci. Y._ a également prié A.A._ de bien vouloir l'aviser, le cas échéant, de toute "annulation" de la cession. Le 30 juin 2004, X._ a adressé à Y._ une déclaration de sinistre concernant le vol de la voiture, intervenu entre le 17 et le 21 juin 2004, ce dont elle a également informé A.A._. Le 17 août 2004, l'assurance a adressé à X._ une convention de règlement de sinistre par laquelle elle proposait de lui offrir une indemnité transactionnelle de 30'581 fr., que celle-ci a refusée par télécopie du 22 août 2004. Le 12 septembre 2004, la voiture a été retrouvée par un tiers, fortement endommagée, abandonnée au fond d'une ravine dans une forêt, ce dont X._ a été informée le 13 ou le 15 septembre 2004. Le 16 septembre 2004, Y._ a reçu en retour de X._ la convention de règlement de sinistre du 17 août 2004, cette fois signée pour accord. Le 17 septembre 2004, X._ a vainement mis l'assurance en demeure de lui verser la somme de 30'581 fr. en indemnisation du vol de la voiture. Le 2 novembre 2004, Y._, après avoir fait procéder à un examen du véhicule sur le lieu de sa découverte, a informé X._ qu'elle doutait de la réalité du vol déclaré et ne verserait en l'état aucune prestation d'assurance; sur la base d'un rapport d'expertise du 6 janvier 2005, elle a estimé que le vol avait été simulé. Le 27 avril 2005, Y._ a déposé une plainte pénale pour tentative d'escroquerie contre l'administrateur de X._, qui a été classée le 26 juillet 2005 pour défaut de prévention suffisante. B. Le 25 novembre 2005, X._ a assigné Y._ en paiement, en ses mains, de 30'581 fr. avec intérêt à 5 % l'an dès le 8 septembre 2004. L'assurance, objectant le défaut de légitimation active d'X._ et contestant la réalité du vol, a conclu au déboutement. Le 13 avril 2006, X._ a informé A.A._ de la procédure, sans susciter de réaction de sa part. Le 27 novembre 2006, une société de recouvrement de créance a informé X._ qu'elle avait été mandatée par A.A._ pour la représenter à son égard "concernant une créance", sans autres précisions; elle a exprimé à X._ son "entier soutien dans la poursuite de [ses] droits à dommages et intérêts vis-à-vis de [Y._]". Par jugement du 20 septembre 2007, le Tribunal de première instance du canton de Genève a débouté X._ de toutes ses conclusions. Il n'a pas examiné la réalité du sinistre, mais a considéré que la cession anticipée des droits découlant du contrat d'assurance privait X._ de la légitimation active, en l'absence d'une éventuelle rétrocession en bonne et due forme; il a également écarté l'existence d'une promesse de payer à X._ découlant d'un accord d'indemnisation valablement conclu entre les parties. Saisie par X._ et statuant par arrêt du 18 avril 2008, la Chambre civile de la Cour de justice du canton de Genève a confirmé le jugement du 20 septembre 2007. C. X._ (la recourante) interjette un recours en matière civile au Tribunal fédéral. Elle conclut à l'annulation de l'arrêt du 18 avril 2008 et à la condamnation de son adverse partie à lui verser 30'581 fr. avec intérêt à 5 % l'an dès le 8 septembre 2004, avec suite de dépens des instances cantonales et fédérale. Y._ (l'intimée) propose le rejet du recours, sous suite de frais et dépens des instances cantonales et fédérale. 