Saute the onion in the olive oil in a large soup pot with the cover on over medium-low heat for about 5 minutes, or until tender. Add the carrots and cook, covered, over medium-low heat for another 5 minutes.
Add the garlic and mushrooms, and continue to cook, covered, over medium-low heat for another 10 minutes. The mushrooms will release their juices during this time.
Add the broth and salt, and simmer gently in an uncovered pot for 30 minutes, or until all the vegetables are very tender.
Puree the soup with an immersion blender or in a food processor. Stir in the milk or cream and serve warm.