Since the slave addresses are 7 bits long, why is it that the number of slaves can be only 127? Is one of the addresses reserved for some special purpose?
From NXP document UM10204, "I2C-bus specification and user manual", section 3.1.12, "Reserved addresses":
Two groups of eight addresses (0000 XXX and 1111 XXX) are reserved [...]
This leaves only 112 addresses available. However, it continues:
If it is known that the reserved address is never going to be used for its intended purpose, a reserved address can be used for a slave address.
So technically you can have 128 slave devices if you are architecting all the slaves yourself, but in a general system you should not assume that any of the reserved addresses are available.
Actually, most I2C devices cannot take any I2C address. They usually have a fixed address. Some can have an address chosen in a reduced set, usually less than 16 possibilities. In that case, the device address is chosen at design time by driving a few dedicated pins, for instance: Microchip temperature sensor MCP9804, chapter 3.1
So at the end of the day, the size of the I2C address space is not really important.
The LSB in the byte is used as a R/W-flag, leaving 7 bits for addressing. This allows for 127 slaves (check with @Ignacio Vazquez-Abrams why this is not necessarily entirely true) + "general call address 0000 0000". The general call adrress is used to "broadcast" to all devices on the bus.
From NXP document UM10204, "I2C-bus specification and user manual", section 3.1.13 "General call address".
The general call address can for example be used for a software reset (3.1.14).