Everyone is going to have a different opinion on this, but I'd really recommend knowing both PHP and ASP (preferrably .NET). Most linux servers run PHP, and most Windows servers run ASP. I've never run into a scenario where I couldn't use one or the other...
Where do you develop those skill sets? I am largely self-taught, and I can continue to go that route, but to learn things such as PHP, ASP, and .NET, I need access to a Windows server (more than my puny home box) to practice and try on. And to try and learn Flash, I first have to have access to the software (kind of an expensive investment for a self-taught webbie) For some reason our school district IT guys won't let me have a sandbox on their Windows 2003 server, plus their security settings are so high that I'd have a better chance getting into the local government's servers...
get a cheap web host. 5 bucks a month will do the trick. then you can practice php or .net or perl or anything else to your hearts content. i reccomend learning .Net (especially C#) AND php. Once you can get around a bit, start picking up T-SQL. If you are using PHP check out MySQL. If you are using .Net try to find a host with MS SQL Server.
Database programming is typically the most valuable skill a web programmer can have, but you need to become adept with a programming language or 2 first.
Web design is nice, but is of little value compared to database programming and it pays a lot lower. Of course it all boils down to what you enjoy the most. Become an expert at a few things a be familiar with as many as possible.
From Monster, median salaries for the SF Bay area:
Web Designer III (4+ years experience): $80,684
Senior Java Developer (4-6 years experience): $105,318