Over medium heat melt the butter in a large soup pot.
Add the chopped onion and garlic, sauté until soft and fragrant.
Incorporate the flour and continue to cook for 2 minutes, maintaining a constant stir.
Pour in the chicken broth, stirring to avoid lumps.
Add diced potatoes, paprika, and cayenne pepper.
Bring the mixture to a boil, then reduce heat and let it simmer for 15-20 minutes or until the potatoes are tender.
Utilize an immersion blender to puree the soup until it reaches a smooth consistency. If you don't have one, transfer the soup to a blender and blend in batches.
Return the soup to the pot and add the heavy cream, cheddar, and Monterey Jack cheese. Stir until the cheese is melted and the soup is creamy.
Season with salt and pepper to taste.
Serve hot, garnished with extra cheese and a sprinkle of paprika.