I'm not sure what you mean by the term OLAP. Are you talking about cubes or data warehouse/data mart databases?
In either case, best practice is to keep them separate. The server configurations used to get the best performance out of your databases are different based on load (OLTP vs reporting). Also Analysis Services and the Database engine will be competing for resources if you put them on the same server, so neither will perform as well as if you have them separate.
Having said that, if you are a small shop with small databases/cubes, you can probably get away with running on the same server. From a cost perspective that's the best way to do it, until the business can't live with the performance issues.