I imagine you are talking about cross-platform applications (applications that will run on Mac OS, Windows, Linux, etc.)? If so, then writing in C++ is certainly a good start, because there are C++ compilers for most every OS. Although this question is far too broad to completely answer; it really depends on what you want to do. For example, if you develop with .Net, you could use
Mono to run .Net programs on multiple OS's. If you are looking to do cross-platform GUI work,
wxWidgets is something you could look into. Also, I saw you tagged your question as C++, but Java is another good cross-platform language.
Flash is also cross-platform, but is more meant for browser work.
Silverlight is similar to Flash, but can also be used for desktop development and is kind of cross-platform (they are adding support all the time for different platforms).