Faits:
A. Le 30 juin 2000, X._ a acheté pour le prix de 20'000 fr. une voiture de marque Mazda, modèle Xedos 6, immatriculée le 2 février 1998. Ce véhicule était assuré, à hauteur de 39'000 fr., en casco intégrale avec valeur vénale majorée auprès de l'Assurance Y._ (ci-après: Y._); l'assurance casco couvrait le vol du véhicule.
Le 9 janvier 2004, X._ a annoncé à Y._le vol de sa voiture, survenu deux jours plus tôt à Evian. Selon la version de l'assuré, il s'est rendu le 7 janvier 2004 en voiture au centre commercial «Cora» de Thonon-les-Bains; vers 17 heures, il s'est arrêté à Evian, où il est resté jusqu'à 23 h 50 environ; c'est au moment de repartir qu'il a constaté la disparition de son véhicule; il a alors téléphoné à son fils pour qu'il vienne le chercher et a dénoncé le vol à la police française. Sur le questionnaire adressé à l'assureur, l'assuré a indiqué notamment que le compteur du véhicule affichait environ 97'000 kilomètres au moment du vol, qu'il avait reçu une seule clé lors de l'achat et qu'il en avait fait faire un double chez Mister Minit en 2002. Il a remis à l'assureur les deux clés susmentionnées et la fiche du dernier service du véhicule, effectué le 25 août 2003.
Y._a constaté que le kilométrage déclaré par X._ (97'000) était bien inférieur à celui relevé lors du service exécuté quatre mois plus tôt (112'000); d'après l'assureur, cet écart représente une différence d'environ 2'000 fr. «au niveau de la taxation». Par ailleurs, le vendeur et l'ancien détenteur de la voiture annoncée volée ont certifié à la compagnie d'assurance que deux clés originales avaient été remises à l'acheteur.
Y._a demandé des explications à l'assuré. Ce dernier a admis s'être trompé à propos du nombre de kilomètres figurant au compteur du véhicule en janvier 2004. Il a également reconnu avoir reçu deux clés lors de l'achat du véhicule. Il a précisé qu'il en avait perdu une, raison pour laquelle il avait demandé à Mister Minit de réaliser une copie à partir de la clé restante; à l'appui de ses dires, il a produit une attestation de Mister Minit selon laquelle une clé codée avait été confectionnée pour la voiture de marque Mazda.
Par lettre du 12 février 2004, Y._a refusé de prendre en charge le sinistre annoncé, car elle était d'avis que le vol n'était pas établi à satisfaction.
B. Par mémoire-demande du 10 novembre 2004, X._ a ouvert action contre Y._en paiement de 21'600 fr. Par la suite, il a augmenté ses conclusions à 21'982 fr. plus intérêts à 5 % dès le 9 janvier 2004.
En cours de procédure, le demandeur a déposé une clé qui était censée être le second exemplaire original, déclaré perdu précédemment.
Une expertise judiciaire a été confiée à A._, professeur auprès du département électricité et informatique de l'Ecole d'ingénieurs de .... L'expert a examiné les trois clés versées au dossier; ses conclusions seront relatées en tant que besoin dans la partie «en droit».
Par jugement du 29 octobre 2007, la Cour civile II du Tribunal cantonal du canton du Valais a rejeté la demande. Elle a considéré que l'assuré n'avait pas rendu la thèse du vol vraisemblable de manière prépondérante.
C. X._ dépose un recours constitutionnel subsidiaire. Il conclut à l'annulation du jugement cantonal et à la condamnation de Y._à lui payer la somme de 21'982 fr. avec intérêts à 5 % dès le 9 janvier 2004.
Y._propose le rejet du recours.
Pour sa part, la cour cantonale se réfère aux considérants de sa décision.

Considérant en droit:
1. 1.1 Le recours est dirigé contre un jugement rendu en matière civile (art. 72 al. 1 LTF). La valeur litigieuse de la cause n'atteint toutefois pas le minimum légal de 30'000 fr. prévu pour le recours ordinaire (art. 74 al. 1 let. b LTF) et aucun des cas de dispense (art. 74 al. 2 LTF) n'est réalisé. Partant, seul le recours constitutionnel subsidiaire (art. 113 ss LTF) est ouvert en l'espèce; c'est d'ailleurs cette voie que le recourant a empruntée.
1.2 Le jugement attaqué est une décision finale (art. 90 al. 1 et 117 LTF). Le recourant a pris part à l'instance précédente et il a succombé dans ses conclusions condamnatoires (art. 115 LTF). Déposé en temps utile (art. 100 al. 1 et 117 LTF) et dans les formes requises (art. 42 al. 1 à 3 LTF), le recours constitutionnel subsidiaire est en principe recevable.
1.3 Ce recours ne peut être exercé que pour violation des droits constitutionnels (art. 116 LTF). Le Tribunal fédéral ne se saisit que des griefs soulevés et motivés de façon détaillée par la partie recourante (art. 106 al. 2 et 117 LTF). L'auteur du recours doit indiquer quel droit constitutionnel aurait été violé et montrer, par une argumentation circonstanciée, en quoi consiste la violation (<ref-ruling> consid. 3.2 p. 444). Le Tribunal fédéral conduit son raisonnement juridique sur la base des faits établis par l'autorité précédente (art. 118 al. 1 LTF). Il ne peut s'en écarter que si les faits ont été établis en violation d'un droit constitutionnel (art. 118 al. 2 et 116 LTF), ce que la partie recourante doit invoquer avec précision (art. 117 et 106 al. 2 LTF; <ref-ruling> consid. 3.2 p. 445). Aucun fait nouveau ni preuve nouvelle ne peut être présenté à moins de résulter de la décision de l'autorité précédente (art. 117 et 99 al. 1 LTF).
2. 2.1 Invoquant l'art. 9 Cst., le recourant reproche tout d'abord à la cour cantonale d'avoir apprécié les preuves de manière arbitraire. Les juges valaisans se seraient bornés à relever quelques contradictions pour en déduire que le sinistre ne pouvait pas être survenu. Or, s'agissant du kilométrage affiché par la voiture de marque Mazda, le recourant a reconnu son erreur, expliquant avoir confondu le kilométrage du véhicule disparu avec celui de sa seconde voiture, une Fiat Tipo. Il met également cette confusion sur le compte de son âge, de la maladie et de ses difficultés à comprendre le français et à s'exprimer dans cette langue. Le recourant observe en outre que la remise spontanée de la fiche du service du 25 août 2003 démontre l'absence de toute intention de tromper l'assureur. Au demeurant, l'indemnisation en cas de vol ne serait pas proportionnelle aux kilomètres parcourus si l'on se réfère à l'art. 8.1 des conditions générales d'assurance applicables en l'occurrence (ci-après: CGA). Selon le recourant, le second élément contradictoire mis en avant par la cour cantonale n'est pas plus pertinent. En effet, aucune certitude ne ressort de l'arrêt attaqué en ce qui concerne le nombre de clés de la voiture de marque Mazda existantes, codées ou même égarées. Le kilométrage erroné indiqué par le recourant et le flou entourant le nombre de clés du véhicule déclaré volé auraient conduit la cour cantonale à ne pas retenir la version du vol comme vraisemblable de manière prépondérante, ce qui constituerait un résultat arbitraire.
Toujours sur la base de l'art. 9 Cst., le recourant se plaint d'une application arbitraire de l'art. 8 CC relatif au fardeau de la preuve. En indiquant que sa voiture ne se trouvait plus à l'endroit où il l'avait laissée, en dénonçant le vol à la police française et en étant obligé de regagner son domicile par un autre moyen de transport, le recourant estime avoir établi le vol au degré de vraisemblance requis. L'intimée n'aurait du reste jamais précisé quel renseignement au sens de l'art. 39 LCA l'assuré aurait refusé de lui transmettre. Enfin, le recourant est d'avis que la cour cantonale ne pouvait se référer aux six sinistres signalés entre le 23 juin 2001 et le 17 novembre 2003 dans la mesure où l'assureur a couvert la totalité de ces cas.
2.2 En matière de preuve de la survenance d'un cas d'assurance, la règle générale de l'art. 8 CC s'applique. L'ayant droit doit établir les faits propres à justifier sa prétention au sens de l'art. 39 al. 1 LCA, en particulier la survenance du sinistre et l'étendue de la prétention. Il arrive cependant, dans l'assurance-vol notamment, qu'une preuve stricte du sinistre puisse difficilement être exigée de l'ayant droit. La jurisprudence admet alors un «état de nécessité en matière de preuve» (Beweisnot), qui autorise un allègement des exigences dans ce domaine. Il suffit ainsi à l'ayant droit de démontrer que l'événement assuré s'est produit avec une vraisemblance prépondérante; ce degré de preuve suppose que, d'un point de vue objectif, des motifs importants plaident pour l'exactitude d'une allégation, sans que d'autres possibilités ne revêtent une importance significative ou n'entrent raisonnablement en considération. Pour sa part, la partie qui n'a pas la charge de la preuve a le droit d'apporter une contre-preuve, conformément à l'art. 8 CC. Elle cherchera à démontrer des circonstances propres à faire naître chez le juge des doutes sérieux sur l'exactitude des allégations formant l'objet de la preuve principale. Pour que la contre-preuve aboutisse, il suffit que la preuve principale soit ébranlée, de sorte que les allégations principales n'apparaissent plus comme les plus vraisemblables (<ref-ruling> consid. 3 p. 323 ss et les références).
Déterminer, sur la base des éléments à disposition, si l'événement assuré s'est produit ou non avec une vraisemblance prépondérante est une question qui ne relève pas de l'analyse juridique, mais bien de l'appréciation des preuves (arrêt 5C.11/2002 du 11 avril 2002, consid. 3a, reproduit in JdT 2002 I 531; arrêt 5C.99/2002 du 12 juin 2002, consid. 2.5 et les arrêts cités).
2.3 En l'espèce, la cour cantonale a mis, conformément à l'art. 8 CC, le fardeau de la preuve à la charge de l'assuré. Par ailleurs, elle a jugé que l'ayant droit n'avait pas rendu la thèse du vol vraisemblable de manière prépondérante. Elle s'est donc fondée sur le degré de preuve requis par la jurisprudence. Contrairement à ce que le recourant soutient, le jugement attaqué ne consacre ainsi aucune application arbitraire du droit fédéral. Sous le couvert de l'art. 8 CC, le recourant critique en réalité l'appréciation des preuves à laquelle l'autorité cantonale s'est livrée. Ses griefs à l'encontre de l'établissement des faits par les juges valaisans seront examinés ci-après.
2.4 La cour cantonale a jugé, sur la base des indices et preuves fournis par l'intimée, qu'il existait des doutes sérieux sur la survenance du sinistre; en conséquence, le recourant n'est pas parvenu à établir avec une vraisemblance prépondérante que sa voiture avait été volée. En premier lieu, les juges précédents ont relevé que l'allégation de vol n'était étayée par aucune preuve indirecte, l'ayant droit n'ayant fourni aucune attestation de dépôt de plainte auprès de la police française, ni établi avoir avisé la police du lieu de son domicile conformément aux exigences de l'art. 10 CGA. Selon l'autorité cantonale, cet élément suffit déjà pour retenir que la preuve principale n'a pas été rapportée. Les juges valaisans relèvent néanmoins d'autres circonstances mettant à mal la crédibilité du recourant, soit l'indication erronée du nombre de kilomètres parcourus par la voiture de marque Mazda, l'incertitude régnant à propos du nombre de clés du véhicule en question, le fait que l'assuré a nié de manière invraisemblable avoir rempli lui-même l'avis de sinistre ainsi que le nombre élevé de sinistres déclarés par le recourant dans les trente mois précédant le vol annoncé.
2.4.1 Selon la jurisprudence, une décision est arbitraire au sens de l'art. 9 Cst. lorsqu'elle est manifestement insoutenable, méconnaît gravement une norme ou un principe juridique clair et indiscuté, ou encore heurte de manière choquante le sentiment de la justice et de l'équité. Il ne suffit pas que sa motivation soit insoutenable; encore faut-il que la décision apparaisse arbitraire dans son résultat. A cet égard, le Tribunal fédéral ne s'écarte de la solution retenue que si celle-ci apparaît insoutenable, en contradiction manifeste avec la situation effective, adoptée sans motif objectif et en violation d'un droit certain. Il n'y a pas arbitraire du seul fait qu'une autre solution paraît également concevable, voire même préférable (<ref-ruling> consid. 3.1 p. 153; <ref-ruling> consid. 2.1 p. 211; <ref-ruling> consid. 2, 217 consid. 2.1; <ref-ruling> consid. 2.1).
En matière d'appréciation des preuves et d'établissement des faits, l'autorité fait montre d'arbitraire lorsqu'elle ne prend pas en compte, sans raison sérieuse, un moyen de preuve propre à modifier la décision, lorsqu'elle se trompe manifestement sur le sens et la portée d'un tel élément, ou encore lorsqu'elle tire des déductions insoutenables à partir des éléments recueillis (ATF <ref-ruling> consid. 2.1; <ref-ruling> consid. 2a p. 41).
2.4.2 En l'espèce, le recourant a déposé avec son recours la copie d'un «procès-verbal vol d'un véhicule», établi le 8 janvier 2004 par un agent de police judiciaire du C.S.P. du Léman à Thonon-les-Bains. Cette pièce ne figure pas dans le dossier cantonal. Conformément à l'art. 99 al. 1 LTF applicable par renvoi de l'art. 117 LTF, il ne peut être tenu compte d'une telle preuve nouvelle au stade du recours constitutionnel subsidiaire.
Dans l'avis de sinistre et le questionnaire pour vol adressés à l'assureur, le recourant avait indiqué avoir déposé plainte auprès du poste de police d'Evian. Sur la base de cette seule déclaration, non étayée par pièce, la cour cantonale pouvait sans arbitraire retenir que le dépôt d'une plainte auprès de la police française n'était pas établi. Par ailleurs, le recourant n'a même pas allégué, ni, a fortiori, démontré avoir signalé le vol de son véhicule à la police de son lieu de domicile, comme l'art. 10 CGA le lui enjoignait. En définitive, les juges valaisans ne disposaient que des allégations du recourant sur le déroulement des événements survenus entre le 7 et le 8 janvier 2004.
A l'encontre de ces allégations, l'intimée a apporté à titre de contre-preuve des éléments se rapportant à l'attitude du recourant lors de l'annonce du sinistre et ultérieurement.
L'assuré a ainsi déclaré un kilométrage sensiblement inférieur à la réalité. Les explications fournies par le recourant à propos de l'origine de cette erreur ne font pas apparaître la prise en compte de ce fait comme arbitraire. En effet, le grand âge, la maladie et les difficultés linguistiques de l'assuré ne ressortent pas du jugement cantonal. Par ailleurs, le recourant a reconnu lui-même, lors de son interrogatoire, que le compteur de sa seconde voiture, de marque Fiat, affichait plus de 200'000 kilomètres en janvier 2004, de sorte qu'il n'avait pu confondre les kilométrages de ses deux véhicules. Enfin, contrairement à ce que l'assuré prétend, les kilomètres parcourus ont une incidence sur la valeur actuelle, qui peut influer sur l'indemnité à verser en cas de vol (cf. art. 8.1 et 12.4 CGA).
Le comportement du recourant en relation avec les clés de la voiture de marque Mazda apparaît également sujet à caution, comme la cour cantonale l'a constaté sans arbitraire. Dans un premier temps, l'assuré a prétendu qu'une seule clé lui avait été remise lors de l'achat du véhicule. Par la suite, il a admis en avoir reçu deux exemplaires originaux, dont l'un avait été égaré. Au cours du débat préliminaire, il a déposé une clé censée être la seconde clé originale, mais l'expertise a démontré que son profil ne correspondait pas à celui de la première clé originale et de la copie remises à l'assureur avec le questionnaire «vol de véhicule». Lors de son interrogatoire, il a déclaré enfin que trois clés lui avaient été fournies au moment de l'acquisition de la voiture. Le recourant ne s'est pas montré plus clair en ce qui concerne le double de la clé remis à la compagnie d'assurance avec la première clé originale. Il a prétendu l'avoir fait confectionner chez Mister Minit, dont il a fourni un document attestant la fabrication d'une clé codée, c'est-à-dire équipée d'un transpondeur permettant la mise en marche du véhicule. Or, selon l'expertise, ladite copie, dépourvue du sigle Mister Minit, n'est pas codée, ce qui peut laisser supposer qu'une troisième clé avec transpondeur existe mais n'a pas été versée au dossier. Le recourant a ainsi varié dans ses déclarations et il apparaît qu'une, voire deux clés permettant de faire démarrer la voiture annoncée volée n'ont pas été retrouvées.
En résumé, la thèse du vol ne résultait que des explications du recourant alors que l'intimée a mis en exergue les déclarations fluctuantes du preneur d'assurance et l'absence d'en tout cas une clé de la voiture de marque Mazda. Indépendamment de la question de savoir si le vol pouvait être retenu sur la base des seules allégations du recourant, les éléments apportés à titre de contre-preuve étaient, de toute manière, de nature à affaiblir le crédit que l'on pouvait accorder à ces déclarations et à faire naître ainsi chez le juge des doutes sérieux sur l'exactitude des allégations formant l'objet de la preuve principale. La cour cantonale n'a dès lors pas apprécié les preuves de façon arbitraire en jugeant que le vol n'avait pas été établi avec une vraisemblance prépondérante. Sur le vu de ce qui précède, il n'est pas nécessaire d'examiner si la fréquence des sinistres annoncés par le recourant dans un passé relativement proche était un facteur à prendre en compte comme contre-preuve.
En conclusion, le moyen tiré de l'art. 9 Cst. est mal fondé.
3. Comme son recours est rejeté, le recourant prendra à sa charge les frais judiciaires (art. 66 al. 1 LTF) et versera des dépens à l'intimée (art. 68 al. 1 et 2 LTF).

Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est rejeté.
2. Les frais judiciaires, arrêtés à 2'000 fr., sont mis à la charge du recourant.
3. Le recourant versera à l'intimée une indemnité de 2'500 fr. à titre de dépens.
4. Le présent arrêt est communiqué aux mandataires des parties et au Tribunal cantonal du canton du Valais, IIe Cour civile.
Lausanne, le 12 mars 2008
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
Le Président: La Greffière:
Corboz Godat Zimmermann