A number of coronagraph designs have been developed for obstructed apertures, but there is a significant performance gap between obstructed and unobstructed apertures. Can this performance gap be closed, or do pupil obstructions and segmentations fundamentally limit coronagraph performance? More generally, how much room for improvement remains for coronagraph designs, both obstructed and unobstructed? We perform a theoretical investigation of these questions. Our methods are based on the approach by Guyon et al. 2006, but we generalize and expand these methods, and apply them to arbitrary apertures. We show that it is theoretically impossible for a coronagraph to perfectly reject a star with a non-0 diameter or be perfectly insensitive to tip/tilt modes. However, arbitrarily good tolerance to stellar angular size can be achieved at the cost of inner working angle, and we provide a fundamental trade relationship linking the two for optimal coronagraphs. We show that the performance of optimal coronagraphs does not strongly depend on aperture obstructions or segmentation, suggesting that the performance gap between obstructed and unobstructed apertures can in theory be mostly closed, with sufficient engineering. We also analyze the performance of optimal coronagraphs in terms of mission yields for LUVOIR and HabEx, and show that optimal coronagraphs improve the science yield by a factor of several, or enable substantial aperture reductions without impacting science yield. Our limits can serve as an ultimate performance target for future coronagraph technology development, as well as to assess the true potential of a given telescope aperture.