Prep and preheat: Heat the oven to 425°F (220°C). Line a sheet pan with parchment for easy cleanup.
Pat 2 cups of the corn dry with a paper towel so it roasts, not steams.
Roast the corn: Toss the dried corn with 1 tablespoon olive oil, a big pinch of salt, and pepper. Spread in an even layer and roast 15–20 minutes, stirring once, until lightly charred and golden in spots. Set aside for topping.
Sauté aromatics: In a large pot, warm 1 tablespoon olive oil over medium heat.
Add onion and a pinch of salt. Cook 5–7 minutes, stirring, until softened and translucent. Add garlic and cook 30 seconds until fragrant.
Add spices and potatoes: Stir in smoked paprika and cumin.
Add diced potatoes, remaining 2 cups corn, broth, and bay leaf. Bring to a gentle boil, then reduce heat and simmer 12–15 minutes, until potatoes are very tender.
Blend to creamy smoothness: Remove bay leaf. Use an immersion blender to puree until silky.
For ultra-smooth soup, transfer in batches to a blender and blend thoroughly. Return to the pot if using a countertop blender.
Finish the soup: Stir in cream or coconut milk and butter, if using. Simmer 2 minutes to mingle the flavors.
Add lime juice or vinegar. Taste and season with salt and plenty of black pepper. The seasoning should make the corn sweetness pop.
Serve: Ladle into bowls and top with a generous spoonful of roasted corn.
Sprinkle with chopped chives, scallions, or cilantro. Add an extra grind of pepper or a pinch of paprika for color.