In a large pot, heat the olive oil over medium heat.
Add the diced onion, carrots, and celery, sautéing until the vegetables are softened, about 5 minutes.
Add the minced garlic and cook for an additional 1 minute.
Add the Italian sausage to the pot, breaking it up with a spoon. Cook until browned and cooked through, about 7-10 minutes. Drain excess fat if necessary.
Pour in the chicken broth and diced tomatoes, stirring to combine. Bring the mixture to a simmer and let it cook for about 10 minutes.
Reduce the heat to low and stir in the heavy cream, grated Parmesan cheese, and Italian seasoning. Allow the soup to heat through for about 5 minutes, stirring occasionally.
Add the fresh spinach and cook until wilted, about 2-3 minutes. Season with salt and pepper to taste.
Serve hot, garnished with additional Parmesan cheese if desired.