
Kitchens - Keeping food out of the kitchen sink drain is easy if you have a sink strainer. Most strainers are the basket type with holes but I prefer the screen style which just sets over the drain opening catching all the big food particles. You simply lift out the screen and dump it in the trash when it's full or when the water won't drain. Anything that will slip past this screen is small enough so it won't cause a back-up. I bought this strainer at Home Depot for about $3 and it has proven invaluable in keeping my drain clear.
Bathroom (sinks and tubs) - When it comes to the bathroom sink (or tub), the main culprit is hair and unfortunately there is not a screen that fits a bathroom sink. Bathroom sinks, unlike kitchen sinks, usually have a pop-up drain assembly with a lever right behind the faucet to lift and lower the stopper. The best prevention here is to wipe up loose hair before it enters the sink drain. You will occasionally need to remove the pop-up in order to clean out the hair. It's a messy job but one that needs to get done or you'll be calling the plumber at $100/hr. I found this Hair Stopper at Bed Bath & Beyond which sits on top of the bathtub drain and catches all the hair before it enters the drain. Some tubs have a fixed metal screen and some have a loose rubber plug. If you have a fixed drain cover you'll need to remove this cover so the Hair Stopper will fit.
Final thoughts - Over the years the inside diameter of your drain pipes get smaller and smaller. You'd be shocked if you could see inside your pipes but this is an indicator of the health of your pipes. There are a number of drain cleaners on the market both organic and caustic but I would only use these as a last resort as they are not very good for the environment let alone the water supply.