The real key to growing your career is turning stumbling blocks into stepping stones. It sounds trite, and maybe it is, but it also encapsulates a great principle of success.
In the IT world, when you are faced with a problem, that problem is an opportunity. Does your software package not have good reporting? Figure out how to get at the data in a standard format (SQL, CSV, whatever) and then format it the way you like it in another tool (or write one to format it). Show that to a coworker or boss who knows the limitations of the program and you may find you are a hero. Does your job have you stuck doing repetitive, boring work? Find ways to automate the work with scripts, macros, etc., or, at the very least, find ways to optimize and batch up the work. Then you have time to focus brain power on higher return work (maybe reporting on or analysis of the repetitive work). Every org needs people who can optimize their efforts.
Back in the 1990's, I distributed corporate software and knowledge-base files to servers all over the world for Novell. A predecessor had written a batch file system to accomplish the task with a nice, semi-automated interface, but it had to be started up every day, and its work had to be checked and babysat regularly. I was told by my IT developer that he would write a better tool for the job. When I grew tired of waiting for that to move to the front burner. I quietly acquired a copy of Delphi and some useful libraries and wrote myself a Windows GUI-based, multi-threaded, NetWare-aware software distribution program with simple scheduling, configuration and reporting. When I left that job, they did not back-fill my position, but handed that app to one of my peers. Was I afraid of working myself out of a job? Absolutely not! Orgs are always looking for people who can automate tedious tasks and help workers squeeze more value out of each hour in the day. There are so many areas in need of optimization, automation and improvement, that you will never run out of work so long as your bosses and peers understand the value you provide.
I'd only had a couple of programming classes before that point and had never worked with Delphi's OO-style of coding, but I optimized my day work so that I could work on this more interesting project. It was interesting enough that I put in plenty of hours after work reading the Delphi manual and testing code as well. That success has taught me how to look for needs. The movie Robots has it right: See a need; fill a need. If you don't yet have the skills, you live in the great age of empowerment and enlightenment. Google and the like give you access to the greatest collection of tribal knowledge in the history of the planet. Abraham Lincoln said, "Give me six hours to cut down a tree and I will spend the first four sharpening my axe." Time to get sharpening.
Now, there are situations which are untenable: hostile environments, micromanaged positions, glass ceilings, broken orgs, dead-ends that would require superhuman efforts to overcome. While I believe every one of those can be overcome with the right attitudes and efforts, I do not think every person has the full skill set, energy reserve or will to overcome every situation. That's when you find another place to go. Never burn a bridge, but recognize that sometimes you need to move on for your sanity (or your family's). Yes, you can go from the frying pan into the fire (been there, done that), but don't let that scare you. Ask questions about the things that might cause you heartburn at a job so you recognize those fires. And if you get a bait-and-switch or land in a bad spot, you can endure the fire for a short while as you find a better spot.
A few final words: Build your personal network. You will best do this with a confident but humble attitude. You can only be confident if you work hard gaining the right skills for a job and then using those skills appropriately. Be top-flight in something and very, very good at a few others. Then you'll have confidence. Sadly, IT is full of arrogant people, so if you can be confident and humble at the same time, you will have a huge advantage in building your personal network. Old bosses and coworkers will come looking for you to fill positions. When you have to get out of a frying pan or fire, these same people will help you find spots.
Okay, end of soapbox rant. :-)