Compared with SPI: I2C is slower (100kHz ~ 400kHz tops), SPI could be faster (1 MHz or more), I2C uses only 2 wires, SPi uses 3 or 4 wires commonly.
compared with RS232(UART): I2C is synchronous, UART is asynchronous, I2c can have a lot of devices in the bus, RS232 is only peer to peer (2 devices per 'bus')
compared with RS485(UART): I2C can have multiple masters, RS485 there can be only one master, I2c is for small distances (1m or less mostly for a single PCB), RS485 is for higher distances (up to 1Km in a well balanced line)