Hi,
What I did: I read the I2C specification. I recommend to do the same. No need to read the whole document at once. Just focus on the pull ups. (It´s the most reliable source of information. All other documents should refer to the I2C specification)
But maybe you are confused, because the specification does not give a simple answer.
Why is there no simple answer? Because it depends on your application. Every application is different.
* Different voltage levels
* different I2C speed
* different line and IC IO capacitance
* external noise sources
...are the most important parameters.
***
Initially I2C was designed for short busses on a PCB (signals not leaving the PCB).
For this a 10k pullup should be sufficient. For more lenghty busses, higher speed, higher noise you need to go more low impedance. Maybe down to 1k. But you need to read the IC datasheets to verify whether they are able to drive the accoring milliamperes while maintianing safe voltage margins.
One resitor per line is sufficient, don´t use one resistor per IC.
Maybe the microcontroller has internal pull ups. Usually they are too high ohmic to meet I2C specifications. You have to check the datasheet.
With external resistors you are safe and more flexible to adjust the value to your application. (I never relied on the internal pull ups for I2C on my designs)
Klaus