I find it kind of strange to separate the programmer levels by average programmer and experienced programmer, so I will call them intermediate developers and senior developers.
The answer to the question can be found in the question itself - experience. In other words - the intermediate developer can tell you several ways of doing/programming something, the senior will tell why you should or shouldn't do it that way and how that decision will affect your product. Other qualities that differentiate the senior developer from intermediate developers are leadership and mentorship - the ability to lead, manage and mentor others is a crucial aspect of the daily duties of a senior develop.
Like @Homer said, the senior developer can see the bigger picture - he can direct the priorities, roadmap, and business related to the development of your product. The intermediate developers can do the 90% of what needs to be done, but they know that the 10% can kill them.