In a large soup pot heat oil over medium-low heat. Add onion and cook for 10 minutes, stirring occasionally.
Add stock, tomatoes and water. Bring to a boil.
Add beans, cauliflower, potatoes, salt and pepper. Bring back to a boil then reduce heat and simmer for 15 minutes.
Transfer 1½ cups of cooked vegetables plus ½ cup liquid to a 4-cup measuring cup. Add garlic and cilantro, puree until smooth. Pour mixture back into pot.
Add cheese and/or Parmesan rinds and simmer for 5-10 minutes.
Taste and adjust seasoning. Serve.