Heat a Dutch oven or large soup pot over medium-high heat. Add the sliced kielbasa in a single layer and cook for 3 to 4 minutes per side, until lightly browned. Transfer the sausage to a plate.
Reduce the heat to medium. Add the butter, onion, carrots, and celery to the pot. Cook for 5 to 6 minutes, stirring occasionally, until the vegetables soften.
Add the garlic and cook for 30 seconds, until fragrant.
Sprinkle the flour over the vegetables. Stir continuously for 1 minute to cook the flour.
Gradually pour in the chicken broth while stirring. Scrape the bottom of the pot to loosen any browned bits.
Add the diced potatoes, browned kielbasa, smoked paprika, dried thyme, black pepper, and salt. Bring the soup to a gentle boil.
Reduce the heat to medium-low and simmer for 15 to 18 minutes, or until the potatoes are fork-tender.
Reduce the heat to low. Stir in the milk or half-and-half.
Add the shredded cheddar cheese a handful at a time, stirring gently until melted after each addition. Do not boil the soup after adding the cheese.
Taste and adjust the salt and pepper. Garnish with parsley or green onions, if desired, and serve warm.