Phylogenies, i.e., evolutionary histories, play a major role in representing the relationships among groups of entities, such as species, genes, and languages. Their pervasiveness has led scientists, mainly biologists, mathematicians, and computer scientists, to develop methods and tools for their accurate reconstruction. Most of these tools, however, assume that the underlying model of speciation is a tree. While a good first approximation, trees fail to model the evolutionary histories in the presence of complex evolutionary events, such as lateral gene transfer and hybrid speciation among biological entities, and borrowing of linguistic features among natural languages. These events lead to “networks”, rather than trees, of relationships. In this dissertation, we present two methodologies for reconstructing phylogenetic networks. In the biological context, our method is based on the observation that contained within the branches of a (species) phylogenetic networks are phylogenetic trees that model the evolution of individual genes. To study the accuracy of our new method, as well as existing methods, we have developed a suite of simulation tools and error measures. Our simulation studies show a clear outperformance of existing methods. In historical linguistics, we extend the Ringe-Warnow model of language evolution, to incorporate non-treelike evolutionary events; our new methodology is called “perfect phylogenetic networks”. We have implemented a reconstruction method, based on the new methodology, and analyzed a dataset of Indo-European languages.