Tree models are widely needed in 3D movies, games, and artistic presentations. Their styles abound. Due to the complexity and the variety of trees, realistic tree modeling remains a challenge. For automated methods, the objectives of speed and controllability are elusive. Data-driven and manual approaches have their own drawbacks: it is inconvenient to obtain laser scans or photographs of a desired tree, and human intervention can be costly. Another different style of trees, abstract trees, possesses stylized branches and aesthetic patterns. However, abstract tree modeling with an emphasis on branching structures receives less attention. Abstract trees in the art style of Gustav Klimt has never been explored in computer graphics. In this thesis we provide procedural methods in two regimes -- realistic tree modeling and abstract tree modeling. For realistic tree modeling, our work is based on the idea of using least-cost paths -- in a weighted graph the least-cost paths between selected endpoints and a root point form a tree structure. Through the sophisticated design of graph creation, endpoint placement, and the setting of edge weights, our tree modeling system is capable of generating a wide range of realistic tree models. For abstract tree modeling, we propose magnetic curves, a particle tracing method to create stylized trees in the art style of Gustav Klimt. The method is also versatile to create many aesthetic forms with curves. Overall, this thesis contributes effective procedural tree modeling methods, and the resulting high-quality results can be used in many computer graphics applications.