During whale-watching season, I volunteer for Birch Aquarium and we narrate aboard the Marietta, which is run through San Diego Harbor Excursions. San Diego Harbor Excursions and Hornblower Cruises are pretty much the two biggest operations and I would recommend one of those two based on success rates. Just keep in mind that the whale season is only for a few months - late December through late March, possibly the first week of April, so while those companies still do shorter harbor tours year-round, there are only whale-watching tours during the months that I mentioned, since that is the only time the whales are in the area (other than a very, very rare stray).