What determines the number of transactions that can be validated in a block?
The absolute limit is the size of the block, which is currently hard-coded at 1,000,000 bytes. Each transaction takes up a variable amount of space, but ~250 bytes is about right for a simple (one-input one-output) transaction.
However as soon as a block is solved it is not possible to extend the block by adding in more transactions, as the proof of work has to be redone, so broadcasting it immediately is the only sensible thing to do. So the number of transactions in a block is actually a function of the number of transactions being generated over a time period and the time taken to solve a given block.
Blocks used to contain fewer than 200 transactions and the largest number of transactions in a block was 1,976 at the time this answer was originally written (May 2013). In meanwhile (November 2017) the average number of transaction per block is well above 1500 with peaks above 2200.
The block size is limited to
1,000,000 bytes 4,000,000 weight units of data. Miners may arbitrarily decide from the available valid transactions which to include. The obvious selection policy would be to optimize for maximum fees collected in the block, for which a simple greedy approach would be to select by the fee rate of transactions, i.e. the amount of fee per data size of the transaction.
[April 2017:] Over roughly the past two months, the mean transaction size was about 506 bytes, and the average count of transactions per block was 1,956.
Current figures can be found here: Tradeblock Historical Data
The average transaction is at least 250 bytes and the average block contains more than 500 transactions. Source: Mastering Bitcoin Chapter 7, page 164.