I think it really depends on your usage. In terms of efficiency, if you're asking about cost of heating up water used then they are generally pretty good.
We've got a Bosch in our cottage that really serves our needs well. The pros are that you will never run out of hot water (unless you run out of NG or propane). We've had 12 people in a row take showers without an issue. It also works well because our need for hot water fluctuates. Having said this, the downside is that it takes a bit of time for the water heater to kick in - about 5-10 seconds, and then a while for the water to heat up. Where this comes into play are tasks like doing dishes - you have to let the water run for a bit before putting in the plug, otherwise the sink fills up with cold/cool water (we run off of a well, so the water comes out VERY cold).
Others may disagree with the above. There are some really good traditional tank water heaters out right now. I like how there appear to be more options in size nowadays, which means for a house with only 1-2 people, you could go with a smaller tank, meaning that you're not paying to heat a large quantity when your major usage times are mornings (showers) and late evenings (laundry), but you still get the benefit of readily available hot water.
Another thing to think about is cost and maintenance. I'm not aware of any utility companies that rent the tankless heaters, which means a fairly substantial upfront cost (good ones range in price from $1500 and up, if memory serves) and you have to pay for any repairs or maintenance. On the other hand, you can often rent a traditional water heater from the company with a maintenance contract that spreads the cost over a longer period. This can be costlier in the long run, as you pay the rate forever, and it doesn't really take long to cover the $600 cost of the water heater, but in return you get a peace of mind knowing that if something goes wrong somebody will come in to fix it and you avoid the possibility of a huge bill.
Just my 2 cents.