Cream 1/2 cup butter. Add sugar gradually, continuing to cream until light, fluffy. Add eggs one at a time; beat well after each addition: add vanilla. Combine flour, baking soda, baking powder, salt together. Alternately add sifted dry ingredients, sour cream to mixture; blend together.
Prepare topping: cream margarine and flour together; add sugar and pecans. Mix until topping is crumbly.
Pour enough batter into a greased 8x8x2 inch pan to cover the bottom of the pan, spreading batter to edges. Cover with most of the topping. Pour remaining batter on top. Sprinkle remaining topping over batter. Bake about 50 minutes at 350 degrees or until top is light golden brown. Be careful not to over bake. Cool for 10 minutes in a pan, then remove. This cake freezes well.