We discuss the problem of estimating the marking of a place/transition (P/T) net based on event observation. We assume that the net structure is known while the initial marking is totally or partially unknown. We give algorithms to compute a marking estimate that is a lower bound of the actual marking. The special structure of Petri nets allows us to use a simple linear algebraic formalism for estimate and error computation. The error between actual marking and estimate is a monotonically nonincreasing function of the observed word length, and words that lead to error are said to be complete. We define several observability properties related to the existence of complete words, and show how they can be proved. To prove some of them, we also introduce a useful tool, the observer coverability graph, i.e., the usual coverability graph of a P/T net augmented with a vector that keeps track of the estimation error on each place of the net. Finally, we show how the estimate generated by the observer may be used to design a state feedback controller for forbidden marking specifications.