In a large bowl, beat together butter and sugar until blended. Beat in eggs and vanilla. Mix together flour, baking powder, soda, and salt. Add dry ingredients alternately with buttermilk, beating on low speed after each addition just until combined. Do not overmix. Fold in apples and nuts. Spread into a greased 9-x-5-x-3-inch loaf pan.
Mix dry ingredients for topping. Cut in butter until mixture resembles coarse crumbs. Sprinkle over batter in pan. Bake at 350° for 50 to 60 minutes or until done. Cool for 10 minutes in pan. Remove from pan and cool completely. Cover in plastic wrap and store overnight.