Here are some hints for better memory usage.
Though with only general info its hard to give a good answer.
- Avoid floating point textures where possible - typically EXR, HDR.
(includes 16bit PNG, TIFF, JPEG2000 which are converted to floating-point), these use 4x memory.
- Avoid displaying textured objects in the viewport (OpenGL-GLSL), this will load textures into memory which is not shared with Cycles - so the textures get loaded twice.
- Use instanced objects where possible.
- Take care using subsurf, curve-render subdivision levels.
The only other suggestions would be to reduce memory use from the rest of Blender.
- Render in background mode. or...
- Reduce undo steps (undo can use a lot of ram), you could even dissable undo.
There may not be a whole lot you can do, if you already checked that you don't have excessively high geometry or high-resolution textures, perhaps you just have to render less complex scenes or buy more ram.