Remove the kernels from the corn cobs. Reserve in a mixing bowl.
Add the corn cobs to a large saucepan along with the onion and salt. Cover with 12 cups water. Bring to a boil. Turn the heat down to medium-low and gently simmer for 90 minutes. Discard the cobs and onion solids.
Add the tomatoes, corn kernels, basil, and butter to the corn broth. Simmer until the tomatoes have softened and lost their acidity, but the corn is still al dente, about 5 minutes. Remove from the heat and taste for seasoning. Add more salt as necessary.
Ladle the soup into bowls and garnish with a glug of olive oil and two tablespoons of parmesan, if using.