Here's a quick fix:

    DiscretePlot[
      Tooltip[PDF[PoissonDistribution[10], x]]
      , {x, 0, 20}] /. Tooltip[a_, b_] :> Map[Tooltip[Point[#], Last@#] &, a[[3, 1]]]

---
If you investigate under the hood,

    Cases[
      ListPlot[Table[Tooltip[PDF[PoissonDistribution[10], x]], {x, 0, 1}]]
      , Tooltip[a__] :> {a}
      , Infinity]
    (* { {{Opacity[0.], Point[{{1., 0.0000453999}}]}, 0.0000453999}
         , {{Opacity[0.], Point[{{2., 0.000453999}}]}, 0.000453999} } *)

so that each point gets its own `Tooltip` labeled with the value, whereas

    Cases[DiscretePlot[Tooltip[PDF[PoissonDistribution[10], x]], {x, 0, 1}]
      , Tooltip[a__] :> a
      , Infinity]
    (* {{{}, Null, Point[{{0., 0.0000453999}, {1., 0.000453999}}], {}}
         , PDF[PoissonDistribution[10],x]} *)

In `DiscretePlot`, the second argument of `Tooltip` is `PDF[PoissonDistribution[10],x]`, which means each point will be labeled with that expression. I do not know why it does this.