It really depends on what you need to happen. With transactional replication, you can specify which objects you want to be replicated (tables, procedures), and you can transform data/objects if needed. Its really done on a per-object basis. Every few seconds the trans log file is read and the changes are transferred to your other server(s). With log shipping, what you are doing is transferring the logs for an entire database to a standby database. This means that users/logins/objects etc are all moved and restored on the reporting server as they happen. The database that the logs are being restored to is set to standby (read only), so reporting can be done on that server as the logs are being shipped and applied. The disadvantages are that when the logs are applied, every user in the db needs to be kicked out of the database so that the logs can be applied. So, when it really comes down to it, it really just depends on what you are trying to accomplish. If you have any questions, let me know.
Tim