Heat a large pot over medium-high heat. Add the Italian sausage and onions and cook until the sausage is browned and fully cooked, about 5-7 minutes. Drain excess grease.
Add the minced garlic and cook for another 30 seconds until fragrant.
Stir in the tomato paste, paprika, and thyme, coating the sausage and onions.
Gradually pour in chicken broth, stirring to combine and scrape up any browned bits from the bottom of the pot.
Add the diced potatoes and bring the soup to a gentle boil. Reduce the heat to medium-low, cover, and simmer for 10 minutes.
Stir in the fresh spinach and simmer for another 1–2 minutes, just until wilted.
Add heavy whipping cream and heat through. Season with salt, black pepper, and optional red pepper flakes.