The level of support needed by programmers varies to much to make any general statements. It depends heavily on what sort of work the programmers are doing, how much authority you give the programmers to change things, what sort of turnover rate the company has and so on.
At one end numbers as high as 1 per 50 could work if the platform, hardware and staff is stable. At the other end, 1 per 10 may not be enough if the programmers are doing a lot of short term work that requires different hardware for each project.
Overall, I've always found that you end up needing more support for the programmers not less. Programmers can work around trivial problems on their own, but they are so much better at creating major disasters. Also, programmers working with Windows will tend to suffer from Windows System Decay faster then end users.
If I had the authority to setup an IT department however I wanted, the one thing I would do very different is how administrative work is done. I would assign each project an administrative assistant to take care of the paper work. All of the time spent by project managers on making sure time sheets are filled out, sending reports to higher ups, checking the vacation schedules don't overlap and so on is time the project manager isn't working on the project. At one place I worked the project manager spent so much time on administrative work that a seperate team leader had to be assigned to actually manage the technical side of the project.
After that, not much can be written in stone because it depends on what sort of projects the company does. Are there lots of little one programmer for one week projects or does the company do 20 programmers for a year type projects? Does the company do projects with fixed end dates and no customer support afterwards or does it do outsourcing, full support type projects? Or, worst of all, does the company do a mix of the above project types?
Jay