Rinse and peel potatoes. Then slice into small 1/2 - 1 inch cubes. Rinse diced potatoes with water twice, draining water both times.
Place diced potatoes into a medium-sized pot and fill with water about 2 inches above potatoes. Bring to a boil, cover, and cook on low-medium for 15 minutes or until potatoes are soft and fully cooked.
Take off heat, drain water, and place potatoes in a bowl. Set aside for now.
While potatoes cook, dice onion finely. Set aside.
When potatoes are done, use the same pot to make the soup. Add avocado oil and diced onion to pot. Heat over medium heat for 2-3 minutes, until onions are soft, stirring occasionally.
Add butter to pot and stir until melted, over medium heat.
Add flour to melted butter and onion mixture to make a roux for thickening. Cook for 1-2 minutes until golden brown. It will be a thick paste, this is what you want!
Add chicken broth to pot and whisk over medium heat until all clumps of roux are gone and evenly combined.
Add cooked potatoes, thyme, garlic, pepper, salt, half and half, shredded cheese, and vinegar. Bring to a simmer over low-medium heat for 10-15 minutes, stirring occasionally. During this time the soup should thicken a bit.
If desired, smash a few of the potatoes in the soup with the soup while stirring for an even thicker soup. Take off heat and enjoy!