One answer is no transformation at all. Poisson regression in fact can give the best of both worlds, the ability to cope with observed zeros and a logarithmic link. The point is that the mean response is modelled as positive, so that it can be logged, and that can be consistent with some observed values being zero. You don't transform the response. In effect the software takes a logarithmic view of the data but returns predictions on the original scale. (This is one kind of generalized linear model.)
See http://blog.stata.com/2011/08/22/use-poisson-rather-than-regress-tell-a-friend/ for one encouraging discussion. By the way, it's a myth that Poisson regression requires counted data or even a marginal Poisson distribution for the response. The leading idea is simply that a non-negative response and a functional form $Y = \exp(X\beta)$ just as the leading idea of classical regression is $Y = X\beta$ and assumptions of Gaussian distributions are far less crucial, just nice if they are accurate.
Much, however, depends on those zeros and whether they are all comparable. For example, number of alcoholic drinks per day is a response that could be zero, but if the population mixed people who never drink alcohol at all and people who in some cases just drank no alcohol on some days, then there is heterogeneity that might require explicit modelling. The best way I can think of putting this is that the simplest situation is that the zeros you observe are all sampling zeros, so that in principle they could have been different. If some are structural zeros, i.e. zeros by necessity or definition, your situation is more complicated.