When given a new task/challenge/application to build, do you always use the same framework, for example spring / struts? Or do you try something new that you haven't used before, such as GWT?
What makes you return to the same technology stack? Is it good to be advanced at particular technologies, or to have a broad understanding?