Does one need to have a bitcoin wallet to buy/sell bitcoins? There appears to be so many exchanges / middle-mans on a bitcoin market (e.g coinjar.com) which can help to buy / sell bitcoin for a cut (usually 2-4%). Do they simply trade bitcoins using their own bitcoin wallet and just keep the client's balance of cash/bitcoins in their system?
They don't sell nor buy anything they are in the middle of a transaction. Check this out, Active buy orders are people who want to buy, and active sell orders are people who want to sell. The exchange is the place where all that people meet.

If you have Bitcoins and want to sell them for real money you have two options, you can sell it to the first buy order for the specified price and the transaction will be finished in that exact moment (if the buy order is for the exact or more amount of Bitcoins that you are selling) and you will be credited with real money that you can withdraw to your bank. Or you can set your own price and wait to see if someone wants to buy it for that price. Depending on the price you set it may take little time, longer or forever.

For every acount a wallet is created where you transfer your Bitcoins, real money is deposited in real banks and transfered to and from those banks.