With the Firmata libraries (or if you can interface to serial with your apps), the board can sort of act like an IO board, but it's more like a smart proxy. It really is its own thing. You need to write code that reads in data from sensors and then sends that to your computer (application) for further processing.

The cool thing is that it can be an IO board with some brains. It can for example aggregate data and calculate whatever and then send that back to the computer rather than just relaying the sensor input data. It's up to you how you want to use it, really.

That's great! I really only wanted to be able to input commands from the computer as a form of input to the Arduino. As long as it's capable of running complex programs at a decent speed I don't really care where the calculations are done. I suppose running all in the PC and sending a lot of data to the Arduino would not be as fluid as running the programs directly in the Arduino.

Well I wouldn't go that far. Complexity is limited by the size of storage for variables and lack of floating point support with only 16MHz clock. You are talking about something less capable than an Apple II here.