This topic seems to be a bit more confusing than it should be. (I'm researching the same question myself, and this page came up first in my searches).
First, a little background on the SPI protocol - it can support numerous devices on a single controller, however requires a dedicated chip select line for each.
The Pi's chipset has 3 SPI controllers built-in. Most documentation, however, only refers to the SPI0 controller. That controller has two chip selects, and therefore can control up to 2 devices by default.
It appeasrs that all Pis since v2 (/w 40-pin headers) also expose a second controller, SPI1 that has 3 chip selects. For information on using it see here or here (look for the SPI section) or here or here (this page explains how to use all 3 chip selects).
The third SPI controller is sadly not broken out to pins on any current model Pis.
So, with a little configuration, that gives us a maximum of 5 first-class SPI devices that can be connected.
If that proves insufficient, current Linux drivers include the 'spi-gpio' module that allows for the usage of arbitrary GPIO pins as chip selects. Unlike the 'first-class' chip selects, this is a software expansion requires additional setup, and will likely not be as efficient (fast/stable). This should allow significantly more devices to be connected. wiringpi.com is the best resource I've come across for this method.
Last, but not least, I'll mention that there do exist SPI expander chips that effectively allow buses to be daisy-chained. These should be more efficient, but are also more complex (to both use and obtain).