The type sig of a function that "returns" a monad indicates the type of the side-effect and the type of the return value
Prelude> :type getLine getLine :: IO String
In this case, the side-effect (or "action" or "computation") is an IO computation, and the return value is a string.
sumTreeM :: Tree Int -> Holder Int
In this case, the side-effect / action / computation is a "Holder" (whatever that is) and the return value is an Int.