In India, more often than not, a tip is money paid to get things done and not for something well done !
Tips are optional in a not-so-fancy restaurant. Place only a few rupees as a tip and not a percentage of your bill. But outside restaurants and hotels, tipping or 'baksheesh' is commonly practiced.
At most eating joints, you can pocket the tip unless you are in a swanky, upmarket one - the kinds that dot the metros and has liveried men serving you. Some tourist restaurants and hotels add a 10% service charge to the bills.
In a 5 star, the waiter, room service boy, housekeeper, porter, doormen will all expect tips. For railway porters, always fix a price before taking his services. For a not-so-heavy bag, Rs. 5 - 10 per bag is ok. Yet much depends on the weight.
No tips for taxi drivers unless he miraculously got you to the airport or put you on a train that you never thought you could make it to. Rs. 50-100 is a handsome one. Give a local guide Rs. 50 for 4 hours of his service and Rs. 80 for a full day.
Hand out a few rupees to people whom you photograph on the road like the snake charmer, the cart puller or the camel rider...
Carry small change - you'll need it often for people who help you with little things like those who keep your shoes outside temples/mosques etc.