In a large bowl of cold water, soak the onions for 10 to 15 minutes. Let drain on paper towels.
Meanwhile, in a large, deep pot or skillet, heat 2 inches of oil over medium-high heat until it registers 360 degrees on a deep-fat thermometer. Fill a large bowl halfway with ice. In a medium bowl, whisk the flour, cornstarch, baking powder and salt. Add the ice water and stir just until a batter forms. (The batter will be thin, with small lumps and bubbles.) Place the batter bowl inside the bowl of ice to keep cold.
Using tongs, coat the onion rings with the batter, letting the excess drip off. Working in batches, drop the rings into the oil and fry until light golden, 2-1/2 to 3 minutes. Using the tongs, transfer the rings to paper towels to drain; return the oil to 360 degrees between batches. Serve with the ketchup.