Part of the problem is you. Bosses can be jerks, but a lot of that is determined by how you let them treat you. As a coder, you shouldn't be an interchangeable part...you have skills and knowledge specific to organization. Use it....do a good job, but also be confident and stand up for yourself. Your not a easily replaceable factory line worker.
Next, work on your social skills. Be diplomatic with everyone you deal with. This means understanding where they come from (even if their jerks), and trying to make them happy. Often this means just listening, and framing your responses in their language. Its funny how easy it is to introduce people to new ideas if you come from their position but add something new.
Be proud of your work, and communicate it. This doesn't mean crowing or anything "in your face". Document it, comment your code, make it nice so that others understand it. It will form trust and respect from other workmates.
Finally, don't get stuck in a rut. Even if your day to day job is boring, be open to new ideas. Read, learn, experiment, and code on the side. Try to find something you enjoy, and find a way to relate it to your work. This doesn't mean introducing every new technology or pattern fad to your current project, but if its something you can do on the side, or something you can discuss with your team, its all good.
If you do these things, add them to your CV...even if you have no intention of moving jobs, its just something you can take pride in. Its easy to get down about work, but in software development, there is so much scope to do things that make our work more enjoyable. Even if your current job continues to be a pain, these are all things that will help you find something new. If you don't change, then your situation wont either.