Learn VB.Net.
C#.Net is slightly more useful, but a bit harder to learn. The two languages are very similar though, if you learn VB.Net, you can learn C#.Net. An advantage of VB is that it is also used in many scripting programs, including Microsoft Office macros. In other words, if you know a little bit of VB coding, you can do everything from create simple custom functions in Excel to automate complex tasks having an Outlook e-mail update an Access database and use the generated list to mail merged letters in Word.
Excel has a very useful Macro Recorder. I first learned VB by recording and then editing Excel Macros. I also learned C++ (the precursor to C#.Net) in high school computer science class, but I learned a lot more on my own than I did from that class. It just made it easier to switch from VB to C# when I found C# more useful for certain functions.
The first answerer suggested Flash and Java. Those are not good for mobile applications because many mobile browsers don't run them. VB.Net and C#.Net, on the other hand, are the languages used (interchangeably) to program ASP.Net web pages. ASP.Net is a system for coding complex server side web applications. Since all the coding is handled on the server side, it can output plain HTML to the end users and have their simple code interact with your back-end system which can be as simple or as complicated as you like.
In this regard, ASP.Net is similar to PHP, but it's a bit more robust in my opinion. I don't know enough PHP to really know that for sure though.
Whatever system you use, make sure you sign up for a web host that supports the program type. Server side code, like PHP and ASP.Net must be supported by your Web Host or you won't be able to run them. Since ASP.Net was created by Microsoft, it is only available if you host your website on Microsoft servers. Some people stay away from ASP.Net because they prefer not to use Microsoft, but I find it incredibly useful and powerful and I'm entirely self-taught.
EDIT: If you're looking at mobile applications, as opposed to mobile web applications, then C++ will be more useful for you. In that case, learn C# and C++ (which are virtually the same thing, but C# is geared toward the web and C++ is geared toward the computer). If you have trouble picking that up, work with VB instead. You should be able to make pretty much the same applications in VB that you can make in C++, but most of the examples you'll find online will be in C++.
EDIT: Oh, and it's a given that if you want to do any sort of programming for the web, you'll need at least a basic mastery of HTML and CSS. One advantage of server side code like ASP.Net is that you can produce a customized version of your website that differs slightly depending on the browser, which makes providing support for multiple browsers easier. On my website, for example, I got it to work properly in all browsers except the buggy old versions of Internet Explorer. I gave IE6 and IE7 their own CSS styles to make it work. I also provided separate styles and changes in the HTML if you're in Print mode or if you're using a mobile browser.
Don't worry though, if you're even considering learning a real programing language, simple markup codes like HTML and CSS should be easy for you to pick up. And since those are both client side (it's what your browser loads up so it knows what to do), you can look at what others have done to get examples on just about every web page out there (including this one).