1) To make the cake: In a large mixing bowl, beat together the butter, sugars, baking powder, baking soda, salt, cinnamon, and flavor, mixing until smooth.
2) Add the eggs one at a time, beating well after each addition. Add the flour alternately with the sour cream or yogurt, stirring to combine.
3) Spoon the batter into a lightly greased 9 x 13-inch pan.
4) To make the topping: Combine the brown sugar, nuts, cinnamon, and chips (if you're using them), stirring to combine.
5) Sprinkle the topping over the batter in the pan.
6) Cover the pan with plastic wrap, and refrigerate it overnight.
7) Next morning, take the cake out of the refrigerator, and preheat the oven to 350°F. Bake the cake for 40 to 45 minutes, until it's golden brown on top. Remove it from the oven, and cool briefly before serving.