I've always been a self-motivator. Extrinsic rewards such as increased pay or improved benefits, whilst attractive, have always felt like a compromise. At work motivation can be a challenge, and it wasn't until I watched "The Puzzle of Motivation", a TED talk by Dan Pink, that I realised what most jobs have failed to offer: autonomy.
Most software developers I know are a strange breed: we'll spend hours of our spare time doing for free the same thing we get paid to do at the office. We are so driven by the technology we work with, we'll make a conscious effort to learn and master our skills, even giving away the fruits of our labour.
When the software development process is driven by intrinsic factors like cost and deadlines, creative thinking and motivation stagnate. You may care deeply about a problem and have great ideas for solving them, but you're not given the room to apply them.
Traditional notions of management are great if you want compliance. But if you want engagement, self-direction works better.
The open source community is built on this notion of self-direction, borne out of the passion software developers have for their art. Employers need to recognise that software developers don't need motivating in the traditional sense. Just give them something to care about and the time to make that something awesome.