Brown the sausage: Heat olive oil in a large pot over medium-high. Add sausage, breaking it up with a spoon, and cook until deeply browned with crisp edges, 6–8 minutes.
Spoon off excess fat if needed, leaving about 1 tablespoon in the pot.
Sauté aromatics: Add onion and a pinch of salt. Cook until softened, 3–4 minutes. Stir in garlic and red pepper flakes, cooking 30 seconds until fragrant.
Build the base: Add potatoes, cannellini beans, oregano, and chicken broth.
Scrape up browned bits from the bottom for extra flavor. Bring to a boil, then reduce to a brisk simmer.
Simmer until tender: Cook 12–15 minutes, or until potatoes are fork-tender but not falling apart.
Make it creamy: Reduce heat to low. Stir in milk or half-and-half.
If using Greek yogurt, whisk it in a small bowl with a ladle of hot soup to temper, then stir back into the pot to prevent curdling.
Add greens: Stir in kale and simmer 2–3 minutes until wilted and vibrant. Season generously with salt and pepper. Add lemon juice if you like a brighter finish.
Serve: Ladle into bowls and top with Parmesan if desired.
Taste and adjust seasoning—this soup likes a confident pinch of salt to make all the flavors pop.