In the end, the inputs detect a voltage, that charges a very small capacitance in a small MOSFET transistor, so there has to be at least a small amount of current for a short while at that voltage to register as "high" (as well as a short amount of current the other way to drain the charge for a "low.")

In general, when you worry about currents and voltages, Ohm's law solves it for you. Given a particular voltage into a particular resistance, you know that the current will be voltage / resistance. From this you can derive other functions, such as the partial voltage in a resistor voltage divider, the minimum resistance needed to limit current to no more than acceptable at a particular voltage, etc.

The specifics of what level of voltage is guaranteed to register as 0, is guaranteed to register as 1, and is too high (or low) to damage the pins of the AVR Atmega microcontroller on the Arduino can be found in the data sheet for that microcontroller in question.

In general, if you're going to do electronics, you have to be comfortable with multiplication, division, re-arranging terms in an equation, and memorizing Ohm's law. This is pretty simple math, as far as math goes, but it's still quite important to develop the right understanding.