Depends on what your goals are. I'm like you, have a couple years of experience as a software engineer. Looking back, I think I have definitely improved a lot over the years since I've graduated, but seems stuck in a void that is between a junior programmer and an expert programmer.
For me, I think as this point is to decide whether I should go for breath or depth, explore or exploit - to be a generalist or a domain expert so to speak. Both are hard, and you really have to work at it.
As you have said, technology changes every 6 months or so, it's almost impossible to catch up with the pace of the tech world. After awhile you will realize that chasing after the hottest technology is a futile pursuit. I think eventually, after sufficient exploration of a landscape, you will have to choose a couple of interestes and become a domain experts in them. You can't be a 1 trick pony because that trick will not always be in high demand, but you can't be a jack of all trades and master of none as well. So pick a couple areas and concentrate on them is my best advice. If you are a Web developer, and you like it, then be good at it. Learn all the latest and greatest tricks on HTML5/CSS/JS, hell, learn how the browsers process rendering so next time you are stuck with a UI bug, you can use a theoretical framework to debug it, instead by going through the drudgery of trial and error every time. If you are into programming languages, take Peter Norvig's advice of learning how to program in 10 years. Learn all a handful of languages that are representative of different paradigms and be enlightened. If you are into systems or networking, brush up on your ninja C skills and write some messaging servers and clients. Join some open source projects that you are interested in.