A DTO is used to transport the data from one layer to other, (for example from the data access layer to the model).
A BO contains the Business Logic.
But the most important thing in this patterns is to separate the layer, in order to make the software more easily maintained.
For example, if you separate the data access layer, it doesn't matter if you are using a database to get the data, or a socket, or a plain text file separated with pipelines, you can change this and it will not affect the rest of the layers.