I have talked to people who do this sort of thing. I'm no expert but here is what I think to be the general gist.
These people are known as black box traders or arbitrage traders. They construct computer systems to automatically identify opportunities and execute trades.
There are two parts to the task. Identifying the opportunity and executing the transaction.
Identifying opportunities requires low latency data from the exchanges, which includes not only network latencies but also processing latencies. Opportunities within a single market are essentially non-existent as the various merchant banks and brokerages have been doing automated trading in this space for some time. The more recent black box traders usually focus on arbitrage between exchanges or through synthetic instruments.
Arbitrage between exchanges consists of looking for an instrument that is listed on more than one exchange and identifying when the orders get out of sync, such that you can make money by buying on one exchange and selling on the other. For example, Royal Bank of Canada trades on NYSE and on the Canadian TSX exchange. The stock is traded in US $ on the NYSE and in CA $ on the TSX. Its possible to write software that looks at the orders on these exchanges and at the foreign exchange rate such that opportunities can be identified.
The second group of opportunities is through synthetic instruments. This is much more technical and I don't really understand it. Essentially what is done is that the software identifies inequalities in the market based on a basket of instrument that, when traded together add up to an instrument. These synthetic instruments are made up of various positions on real instrument. For instance the synthetic might consist of an equity and several options to buy or sell that equity.
Once the opportunity is identified then the order must be executed before the market picture changes. For this, low latency order execution is required. I think that traders may use two different boxes, co-located at the data vendor and at the trade execution provider to reduce latency as much as possible.