If using fresh corn, husk the ears and carefully cut the kernels from the cob. Reserve 2 cobs to add to the soup for extra flavor (they'll be removed later). If using frozen corn, simply measure out 6 cups and set aside.
Heat olive oil in a large Dutch oven or soup pot over medium heat. Add diced onion and cook until translucent, about 5 minutes.
Add minced garlic, jalapeño, and bell pepper, cooking for another 3 minutes until fragrant and slightly softened.
Add ground cumin and smoked paprika to the vegetable mixture, stirring constantly for 30 seconds to toast the spices and release their flavors.
Add the corn kernels to the pot and stir to combine with the aromatics. Pour in the broth and add the reserved corn cobs if using.
Bring the mixture to a boil, then reduce heat and simmer for 15-20 minutes until the corn is completely tender.
Remove the corn cobs if used and discard. Using an immersion blender, blend about half of the soup to create a creamy texture while leaving plenty of whole corn kernels for texture.
Stir in the heavy cream, lime juice, and chopped cilantro. Simmer for an additional 5 minutes to allow the flavors to meld.
Taste and adjust seasonings as needed—perhaps a pinch more salt or an extra squeeze of lime to brighten the flavors.
Serve hot, garnished with a dollop of mayonnaise (if using), crumbled cotija cheese, a sprinkle of chili powder, additional chopped cilantro, and lime wedges on the side.