Login over IPv6, plug in a screen and use the console, connect a serial terminal, or, erm, that's about it.
Otherwise mount the SD card on something and poke around the filesystem in the hope of finding what's broken. I'd start with a good fscking. Pis are good at corrupting SD cards, so it's worth having a backup image of the card.