David Schwartz's answer covers all "practical purposes". This answer will focus on the "impractical purposes". There is a theoretical exception to the rule of unlimited reads, but it has a simple solution.
There is a lifetime limit on writing to flash memory, but reading also affects it. One of its weaknesses is what is called "read disturb errors" 1 Reading flash memory slightly degrades surrounding stored values, which can eventually lead to errors.
The errors are avoided by the controller keeping track of the number of reads, and copying blocks before the degradation becomes a problem. Simply copying the block to somewhere else and then erasing the original block resets everything, and the original block can be used again. Source
The rule of thumb for MLC is 100,000 reads; for SLC it's 1,000,000 reads 2 (Multi-Level Cell, or MLC, and Single-Level Cell, or SLC, are two type of flash memory). So under "normal" usage, these thresholds might not even be a problem that the controller needs to handle.
Which brings us to the impractical scenario. Suppose you were using flash memory for a purpose like in this question (write once and then read massively over a long time). As long as there is at least one free block, the controller can play musical chairs with the data. However, if you were to fill every last block with data, you could eventually reach a point where the controller has no way to avoid read disturb errors.
In this far-fetched case, the controller would likely avoid corruption by freezing the card or flash drive, so there would be no cost-effective way to read it. At the usage levels described in this question, that could happen within a few months or years, depending on the type of flash memory.
Of course, that could be handled by just having a backup drive, given how cheap they are and the fact that you haven't written any new data. Or, you could ensure that you leave at least a small amount of free space.
Note: Both of the following sources are direct download links; a PDF file will download as soon as you click on it.