Melt butter in a medium saucepan over medium heat. Once it's foamy and golden (not burned!), add the cumin, smoked paprika, garlic powder, and onion powder. Stir constantly for about 30 seconds until you smell those spices toasting — trust me, your kitchen's about to smell amazing.
Pour in the chicken broth and whole milk, stirring until everything's combined. Let this heat for about 2 minutes until it starts steaming, then reduce heat to medium-low so it doesn't boil over. This is important because we're about to add cheese.
Add the shredded cheddar cheese first, stirring constantly as it melts. I like to add it in two batches so it melts evenly and doesn't clump up. After the cheddar's totally melted (maybe 2-3 minutes), do the same with the Monterey Jack cheese.
Once both cheeses are melted and silky, add the corn kernels and stir them through. The corn adds sweetness and texture — I accidentally used frozen corn once instead of canned and it was watery, so definitely drain your corn well. Season with salt and pepper, then taste and adjust. Your homemade queso from scratch might need more salt depending on your cheeses.
Keep the heat on medium-low and stir occasionally for the next 3-5 minutes. The dip will thicken slightly as it sits. If it gets too thick, just add a splash more milk — seriously, I've done this a hundred times and it saves everything.
Transfer to a serving bowl or keep it in the saucepan if you're serving right away. I learned the hard way that cold queso gets thick and weird, so keep it warm on low heat if you can, or reheat it gently before serving.
Serve with tortilla chips, fresh veggies, or whatever you like dipping. The dip stays creamy for about an hour at room temperature, so don't panic if your party runs long. You can always reheat it gently over low heat or in the microwave in 30-second bursts.