In a large pot, melt the butter over medium heat. Add the chopped onion and sauté for about 5 minutes until softened. Stir in the minced garlic and cook for an additional minute until fragrant.
Add the diced potatoes to the pot and pour in the chicken or vegetable broth. Bring the mixture to a boil, then reduce the heat and let it simmer for 15-20 minutes, or until the potatoes are tender.
Once the potatoes are cooked, use a potato masher or immersion blender to mash the potatoes to your desired consistency. For a creamier soup, blend until smooth.
Stir in the heavy cream, shredded cheddar cheese, salt, black pepper, paprika, and cayenne pepper (if using). Cook over low heat, stirring frequently, until the cheese is melted and the soup is heated through, about 5 minutes.
Taste and adjust seasoning if necessary. Serve hot, garnished with chopped green onions or chives.