As @sdecandelario said, experience and with experience comes the ability to problem solve.
To listen to a clients requirements and before you begin to type, you can already start to lay out the app or site in your head. Someone says - I need a shopping cart - you know a shopping cart needs a DB of sorts; a cart, a product list, be able to change qty, sort and search products, calculate tax, shipping, returns and refunds, etc...
If this was your first cart, you might not know everything that goes into a cart.
Experience brings the ability to problem solve quickly, to scope correctly, price correctly and manage time correctly.
In the end, that saves development time and ultimately money for your employer and or the client.
I would also say, experienced programmers are dreamers; they dream of ways to solve problems. Way 1 didn't work? They dream up another way. But to have those dreams, you have had to have experience doing it once before.
A downfall of experience can be loosing the magic of the show. Ever see a magic show or watch a new movie? First time is great! The 100th time you've watched it? You know whats gonna happen and can probably repeat lines from it with your eyes closed. As an experienced developer you need to be careful how you convey that to a client or a boss. This may be your 50th shopping cart you've built, but to the boss or client, it may be their first. They may be really excited about the idea of selling products; and you don't want to take that away from them.
So with experience needs to come understanding that while you may have the experience and this isn't your first rodeo, it's not necessarily the same for everyone else in the room.
So - experience FTW!