Another thing that makes people more passionate about the work they do is to actually do meaningful work. A lot of what many software development shops do is, let's face it, not all that meaningful. Sure there are always a few interesting problems to solve, but many projects involve solving the same kinds of problems that have already been solved by others the same way.
One way to address this is to take build-versus-buy decisions very seriously, and only build systems from scratch where you can do something new and innovative and really add value.
Another is to add meaning to your work in other ways — for example, you might consider making some of the more rote modules you create from scratch for a project Open Source so that they don't need to be written again by anyone.