Network coding has been proposed recently as an efficient method to increase network throughput by allowing network nodes to combine packets instead of simply forwarding them. However, packet combinations in the network may increase delay, complexity and even generate overly redundant information when they are not designed properly. Typically, the best performance is not achieved when all the nodes perform network coding. In this paper, we address the problem of efficiently placing network coding nodes in overlay networks, so that the rate of innovating packets is kept high, and the delay for packet delivery is kept small. We first estimate the expected number of duplicated packets in each network node. These estimations permit to select the nodes that should implement network coding, so that the innovating rate increases. Two algorithms are then proposed for the cases where a central node is aware of the full network statistics and where each node knows the local statistics from its neighbor, respectively. The simulation results show that in the centralized scenario the maximum profit from network coding comes by adding only a few network coding nodes. A similar result is obtained with the algorithm based on local statistics, which moreover performs very close to the centralized solution. These results show that the proper selection of the network coding nodes is crucial for minimizing the transmission delay in streaming overlays.