I could make an Android app on Linux or Windows or OSX. I could make a Windows program on Linux or Mac, and I could make a Linux program on Windows or Mac. I don't know if you could make a Mac program on Windows or Linux, but it might be possible. Point being, you can use the computer you already have.
My criticism of having to buy a Mac and use XCode to make an iOS app is in response to the criticism of having to use Windows and Visual Studio to make a Windows RT app. It's the same process. The only difference between Windows RT and iOS is that Microsoft lets you install Windows RT apps on a desktop/laptop as well as a tablet. Microsoft is far from pioneering this requirement by several years and half-a-million apps. Yet people are pushing this like it's a brand new Microsoft innovation.