If you post the code, maybe we can help you optimize it. Just making the timeout value longer is usually a bad way to fix this.
Some things to consider when optimizing: indexes on the base tables, getting rid of any cursors, using stored procedures instead of calling the information directly from the user interface, limiting the information asked for to only the necessary fields (don't use select * from Table1 when all you need is two fields, for instance), making sure that you don't have an infinite loop.
Additionally, it may not be the actual code which is slowing you down, but triggers on the table (applies to insert, update and delete statements only).
Other things which can speed up performance include moving the transaction logs and indexes to separate physical drives with separate drive controllers. Also, depending on the number of records you have, you may want to partition your tables across several drives or have an active and an archive table to allow for few records to be processed for most queries. Or if your structure is very normalized, you may need to denormalize cut down on the number of required joins to extract data.
If your slow process is adding many records at a time, you may want to consider batch processing rather than doing all in one step.