Heat oil in a large pot over medium-low heat and cook onions without browning until tender, about 10 to 12 minutes. Stir in the corn and cook for 2 minutes. Add the stock and bring to a boil.
Reduce heat and simmer until corn is tender and liquid has reduced slightly, 15 to 20 minutes. Add tomatoes, salt, and pepper, stir, and remove from heat.
Serve in bowls with dollops of sour cream and dill sprigs.