Cruise from Tallinn to Helsinki (and vice versa) takes about 2.30 hours. The cheaper options include the Eckeroline and Viking line, Tallink is relatively more expensive and faster (2 hours) and offers more luxury options as well. There is also Linda line, which is fastest (1.5 hours), but they have smaller boats.
You can buy tickets on the websites of either of these companies or check out this website https://laevapiletid.ee/ , which has good offers sometimes. Through them I bought Viking Line day return ticket for 21 EUR per person.
Eckeroline also has the day trip offer, it would be 12-15 EUR for the day return ticket. However, on the weekend the last ship from Helsinki is at 15.15, which would be too early for us to leave, so we opted for Viking line. But on the weekdays, you can choose Eckeroline, as the last ship leaves at 18.30, so you will have enough time to explore the city.
If you buy your ticket online, you will have to pick up actual ticket at the terminal. The ships leave/arrive from/to Reiseterminal A in Tallinn and from/to Katajanokanlaituri 8 in Helsinki. You will have to be there half an hour earlier. In our case, 15 minutes before departure, the ship entrances were already closed.
The cruise ships are equipped with several food places and cafes. On Viking Line, they had the Robert coffee, which we enjoyed. Food on the ship isn’t cheap. You can also find many other things on this ship, including sanitary pads and toothbrushes. The ships also have the luggage lockers available.
While entering Helsinki with Viking line, you pass the Suomenlinna island and have amazing views over Suomenlinna on the left side and then over Helsinki itself in front of you. Same goes for when leaving Helsinki in the evening. It was already a sunset time and we had amazing views in the dwindling rays of the sun.