A star forest of a graph G is a spanning subgraph of G in which each component is a star. The minimum number of edges required to guarantee that an arbitrary graph, or a bipartite graph, has a star forest of size n is determined. Sharp lower bounds on the size of a largest star forest are also determined. For bipartite graphs, these are used to obtain an upper bound on the domination number in terms of the number of vertices and edges in the graph, which is an improvement on a bound of Vizing. In turn, the results on bipartite graphs are used to determine the minimum number of lattice points required so that there exists a subset of n lattice points, no three of which form a right triangle with legs parallel to the coordinate axes.