Why can't one battery power an infinite number of leds (or anything else)?
Because a battery, like any real power source, has an output impedance. The more current you draw, the lower the voltage output. Granted, for a battery the output is not simply a fixed resistor, but the principle remains the same.

As an example, let's pretend that a 12-volt battery has a 0.1 ohm output impedance. If you were to short the outputs of this notional battery, the current would be 12 v / 0.1 ohms, or 120 amps. By the same token, if a load were to draw 60 amps, the output of the battery would be 12 - (60 * 0.1), or 6 volts.

Another way to put it is that the output impedance sets an upper limit on the amount of power a battery (or any power source) can provide. For DC, this upper limit is (V * V / R) /4.
In the case of our notional battery, this upper limit is 360 watts.