If you’re using fresh peaches, bring a large pot of water to a boil. Gently lower 2 to 3 peaches at a time into the boiling water. Let the peaches sit in the boiling water for 30 seconds. Transfer the peaches to a bowl of ice water to prevent further cooking and to loosen the skin. When the peaches have cooled, drain, peel, halve, and pit them. Slice the peach halves into 1/2-inch-thick slices.
Transfer the peaches to a medium saucepan (if using frozen peaches add them to the saucepan at this point).
Add the 3/4 cup granulated sugar and 1/4 teaspoon salt and set the pan over medium heat. Cook until the sugar dissolves and produces a syrup, stirring gently. Remove the pan from the heat and stir in the vanilla. Set aside.
Spread the butter pieces out in the bottom of a 13x9-inch baking pan. Preheat the oven to 350 degrees and place the pan with the butter in the oven while it preheats. Once the butter has melted, remove the pan from the oven (keep the oven at 350 degrees).
In a medium bowl, whisk together the flour, 1 cup granulated sugar, baking powder, and 1/4 teaspoon salt. Add the milk and stir until just combined, being careful not to overmix.
Pour the mixture over the melted butter in the pan (do not stir).
Spoon the peaches and liquid over the flour mixture (don’t not stir.)
Sprinkle the cinnamon over the peaches.
Bake for 30 to 40 minutes, until the batter puffs up and is golden brown, and no longer jiggly. Cool for 5 to 10 minutes before serving.
Serve warm, with a scoop of vanilla ice cream, if desired.