Heat olive oil in a large Dutch oven or soup pot over medium-high heat. Add the Italian sausage, breaking it into smaller pieces with a wooden spoon. Cook until browned and no longer pink, about 5-7 minutes.
Add the diced onion, carrots, and celery to the pot with the sausage. Cook for about 5 minutes until the vegetables begin to soften, stirring occasionally.
Stir in the minced garlic, dried oregano, dried thyme, and red pepper flakes (if using). Cook for about 30 seconds until fragrant. Don't let the garlic burn or it will become bitter.
Pour in the chicken broth, scraping up any browned bits from the bottom of the pot—that's pure flavor!
Add the diced potatoes and bay leaves to the pot. Bring the soup to a boil, then reduce heat to maintain a gentle simmer. Cook for about 15 minutes, or until the potatoes are just tender when pierced with a fork.
If using canned beans, add them now and continue simmering for another 5 minutes.
Stir in the chopped kale, a few handfuls at a time, letting it wilt down before adding more. The kale will seem like a lot at first but will shrink considerably as it cooks.
Simmer for another 5-7 minutes until the kale is tender but still has some texture.
Remove from heat and stir in the lemon juice. This brightens all the flavors and adds a subtle dimension that really makes the soup pop.
Remove the bay leaves and season with salt and black pepper to taste. Remember that Italian sausage and broth already contain salt, so add gradually and taste as you go.
Ladle into bowls and top with grated Parmesan cheese. Serve hot with crusty bread for dipping.