First, let's be clear that in this context when people say "ground" they mean zero volts or "common". As drgeoff says, if you aren't using optoisolators or similar, yes, you must connect the commons together.
You will need to consider what happens during power-up and power down, when there could be up to 5 volts difference between pins of the Pi and the peripherals.
For a non-isolated circuit, you need to protect the Pi's I/O such that when the voltage on a peripheral's pin is greater than the voltage currently on the 3.3V supply pins (put that way to allow for power up/down) the current is no greater than a few mA. A 2.2K to 10K series resistor is a simple way of current limiting, providing it doesn't affect circuit operation.
You also need to consider what happens to the peripherals in the time between them being powered, and the Pi's outputs being configured and set to the correct levels. Will you get spurious outputs? Does it matter? If so, you need some sort of reset circuit.