There is some overlap between "web development" and programming. When I think of "web design" I picture the end-to-end development including artistic design of logos, color schemes, Flash animations, pixel-by-pixel spacer graphics, stuff like that, then wrapping all that content in a website back end that perhaps uses databases and code to dynamically generate the pages.
I would be a terrible web designer because I have very little sense of style and even less ability to manipulate pixels in Photoshop. But I could easily write a program that, say, reads data fields from a text file, or XML file, or SQL database, and wraps it in chunks of display code to show on a webpage, or takes a web form of user data and processes it.
Most profitable? I don't know, that would depend on what city you're in, how big the company is (your own business? a small startup? a huge corporation? a government job?).
I can give you some figures from personal experience, though. Starting salaries, junior level, 2 years experience, Canadian dollars. I had a job offer to be the IT guy and website developer for a reasonably large company (couple hundred employees across the country). The offer was about $50K. I got several offers for software engineering (programming) positions from a few large companies (thousands of employees) ranging from $55K to $64K.
I think, generally speaking, "software engineers" make more money than "web developers" or "IT professionals". A lot of the work and training is the same though.