Heat a large stockpot over medium-high heat. Add diced bacon and cook until crispy, stirring occasionally. Transfer the bacon to a separate plate, using a slotted spoon, reserving about 3 tablespoons of bacon grease in the stockpot. (Discard any extra grease, or you can substitute butter in place of the 3 tablespoons of bacon grease. Also, if you are short on time, you can dice the potatoes and onion while the bacon cooks to save time.)
Add onion and saute for 5 minutes, stirring occasionally, until soft. Sprinkle the flour on top of the onion, and stir until combined. Saute for an additional minute to cook the flour, stirring occasionally. Then stir in the chicken stock until combined. Stir in the milk and potatoes until combined. Continue cooking until the mixture reaches a simmer, but is not boiling.
Reduce heat to medium-low, cover, and simmer for about 10-15 minutes or until the potatoes are soft, stirring occasionally every few minutes so that the bottom does not burn. (The smaller you dice your potatoes, the faster they will cook.)
When the potatoes are soft, stir in the cheddar cheese and Greek yogurt (or sour cream), salt, pepper and cooked bacon bits. Taste and see if it needs more salt or pepper or cheese.
Serve warm, garnished with desired toppings. Or, transfer to a sealed container and refrigerate for up to 3 days.