How can I assigning specific depots to trains?

When giving trains orders, you can make it 'go to' a depot just as you might tell it to pass through waypoints and stations. By default 'always go' is selected, which means the train is forced to undergo servicing whenever it reaches that point in the list of orders. By changing the condition on the right, you can make sure that the trains only use the depot when needed.

By doing this you essentially take over responsibility for the train's maintenance - the train will not use any other depot and only use the assigned depot when the order is reached. See: http://wiki.openttd.org/Servicing for more information