Recipe adapted from Aran Goyoaga and her blog, Cannelle et Vanille.
Cut off tips of corn and stand in a wide shallow bowl. With a sharp knife, cut kernels off cobs. Place cobs in a large pot, along with milk and 6 cups water; bring to a boil over high. Reduce to a simmer and cook until liquid is slightly reduced, 15 minutes. Discard cobs.
Meanwhile, in a large skillet, heat oil and butter over medium-high. Add shallots and garlic; cook until soft and translucent, 2 minutes. Add corn kernels and cook until crisp-tender, 4 minutes. Season with salt and pepper. Transfer corn to pot with milk mixture and bring to a boil. Reduce to a simmer and cook until corn is soft, 15 minutes.
In batches, fill blender halfway with soup and puree until smooth. (Use caution when blending hot liquids: Remove cap from lid and cover opening with a dish towel.) Pour liquid through a fine-mesh sieve set over a large bowl, pressing on solids; discard solids. Season soup with salt and pepper and refrigerate until cool, 1 hour (or, covered, up to overnight). Divide chilled soup among bowls and top with bell pepper, scallions, and cilantro.