Heat olive oil in a large pot over medium heat. Add Italian sausage, breaking it apart as it cooks. Cook until browned, about 5–7 minutes. Remove and set aside.
In the same pot, add diced onion and garlic. Sauté until softened and fragrant, about 2–3 minutes.
Pour in the chicken broth and add diced potatoes (if using). Bring to a boil and simmer until potatoes are tender, about 10 minutes.
Lower the heat and stir in heavy cream, Parmesan cheese, Italian seasoning, and red pepper flakes.
If a thicker consistency is desired, dissolve cornstarch in a little water and stir it in. Simmer for 5 minutes until thickened.
Stir in the cooked sausage and spinach or kale. Simmer for 2 more minutes until greens are wilted.
Season with salt and pepper to taste. Serve hot with extra Parmesan on top.
Notes
For a deeper flavor, use hot Italian sausage and fresh Parmesan. Let the soup simmer uncovered for a few minutes if it's too thin.