Да, можно. Но смотря что за приложение и на чем пишешь.
1. Java. Работать будет на любой системе, включая Mac OS. В ее основе лежит "java-машина" - то есть весь написанный тобой код собирается в так называемый байт-код, который выполняется джава-машиной. Все, что ты увидишь на экране и все, что делает твой софт - все это берет на себя джава-машина, ты только пишешь ей, что делать (грубо говоря).
2. Qt. Это набор библиотек, предостоавляющих тебе примерно то же самое, что и в первом случае, но только без "машины". Но, если твой софт использует что-то специфичное, например напрямую обращается в АПИ винды, то тут ты в пролете.
3. C# и Mono. Работает примерно как и джава-машина, с той лишь разницей, что дотнет сам по себе заточен только под винду, а моно - это костыль, разработанный типа как ему замена. Об адекватном переносе софта с одной платфоры на другую можно забыть - косяки вылезут в любом случае.
4. Питон с каким GTK (pyGTK), но тут тоже все будет зависеть от того, что ты будешь использовать - см. про кьют.
В общем, все записит от того, что за софт ты собрался писать. Исходя из этого уже нужно смотреть на язык и на то, что этому языку нужно для воплощения твоих идей и задумок. И уже только отсюда можно смотреть на кросс-платформенность.