Why to run a cash exchange?
For extra side income, of course! There are definitely already some people earning money by exchanging bitcoins. Also if you are already invested in bitcoin in a way or other, cash exchanges make it easier for people to obtain bitcoins or get rid of them, when they need. Good liquidity helps people to trust bitcoin more, and the more people trust in bitcoin, the more they will value them.
If you work for example in an internet-enabled cafe, it is pretty easy to do bitcoin exchange as a side-job.
Also, even when you are not able to turn out profit, with cash you can probably buy or sell bitcoins directly between users, without fees.
Is there market/demand?
Depends where you live and what kind of contacts do you have. In many countries, it is really cumbersome, slow and/or expensive to send money from other countries. By starting a local cash exchange, you can basically compete with companies like Western Union by offering alternative methods for transmitting money internationally.
Some people appreciate the privacy that cash exchanges offer. Buying a small amount of bitcoins with cash is also a great way get started with bitcoins.
With localbitcoins.com, it is really easy to create profitable and competitive pricing strategy. For example, you could use pricing strategy like this:
Selling: mtgoxUSD_ask * 1.05
Buying: mtgoxUSD_bid * 0.95
More complex example:
Selling equation: (mtgoxEUR_ask + intrsngEUR_ask + EUR_24h ) / 3 * 1.05
Selling equation #2: max(max(mtgoxUSD, bitstampUSD), USD_24h)
Buying equation: (mtgoxEUR_low + intrsngEUR_low + EUR_24h ) / 3
As parameters you can use any currency averages from bitcoincharts.com, for example USD_30d, EUR_24h, SEK_7d. Also market data can be used by combining the market like mtgoxUSD and a parameter like ask, bid, low, high and close.
We also have currency exchange rates for all the currencies listed (from USD): USD_in_EUR, USD_in_PHP, USD_in_RUB and so on. They are fetched from http://openexchangerates.org/latest.json
You can use the localbitcoins.com transaction service to speed up the trading process. It also nicely removes the need for devices for buyer - just confirmation code is needed.
One way for instant transactions is for both participants to use web based online wallets such as Easywallet.org.
If traders are using different wallet software, you can use Blockchain.info for checking the confirmations. Mobile usage is cumbersome, but works.
What if I run out of bitcoins/what if I buy too much bitcoins?
You can always resort to a real exchange in a case like that! Of course, you need bank account for this, and you might need to deposit some cash into your bank account. Alternatively you can use otc marketplaces such as bitcoin-otc.com, bitcoin.de and bitcoinary.com.
You can also reflect the demand situation in your pricing. For example, if there is lots of demand, and less sellers, you could use buying price like USD_24h*0.99 and selling price like USD_24h*1.10.