Heat the olive oil in a large pot over medium heat.
Add the Italian sausage and cook, breaking it into crumbles, until browned and cooked through.
Stir in the diced onion and cook until softened, about 3–4 minutes.
Add the minced garlic and cook for 30 seconds until fragrant.
Add the diced potatoes, chicken broth, salt, black pepper, and Italian seasoning.
Bring the soup to a boil, then reduce heat and simmer until the potatoes are tender, about 15–18 minutes.
Lower the heat and stir in the heavy cream.
Add the chopped spinach or kale and cook just until wilted.
Stir in the Parmesan cheese until melted and smooth.
Taste and adjust seasoning if needed, then serve hot.