Cook the Potatoes: In a large pot, combine the cubed potatoes, chicken broth, and water. Bring to a boil, then reduce heat to medium and cook for 15–20 minutes or until the potatoes are fork-tender. Drain and set aside.
Make the Roux: In a separate large pot, melt the butter over medium heat. Add the chopped onion and garlic; sauté for 2–3 minutes until fragrant. Stir in the flour and cook for 1–2 minutes until it forms a paste.
Build the Soup: Slowly whisk in the heavy cream and milk until smooth and thickened (about 3–5 minutes). Add the cooked potatoes, salt, pepper, garlic powder, onion powder, and paprika. Simmer for 10–15 minutes over low heat, stirring occasionally. For a smoother texture, use an immersion blender to partially blend the soup (leave some chunks for texture).
Add Cheese and Bacon: Stir in the shredded cheddar cheese until melted and creamy. Add half of the crumbled bacon and mix well.
Serve and Garnish: Ladle into bowls and top with more shredded cheese, crumbled bacon, green onions, and a dollop of sour cream.