There are a number of methods to use to solve systems of equations.
(1) Graphing works well for the very easy and the very hard problems. The very easy are where everything comes out with whole numbers, and the intersection is at a lattice point. However, if you are hand-drawing your graph, you may think you have a solution that is really not a solution. So you end up checking algebraically anyway. (e.g. the correct solution is the point (1.98,2.02) but it sure looks like the lines meet at (2,2))
Sometimes a problem is very hard -- particularly if one or both equations are not linear. Finding the intersection of `y=.23x^2+1/(2x)` and `y=tan(2x)+e^x` would be trying, but a graphing utility will estimate the intersection(s) to a great degree of accuracy.
I like to use graphing to check an algebraic solution, or to give me a hint on where to look.
(2) Elimination (linear combinations) works if all equations are linear. (This method can sometimes be used on other types of equations, but these are special cases). This is my preferred method. I use this almost exclusively when solving linear systems.
Note that this method requires all equations to be of the same form: standard/general form, slope-intercept form, etc... If they are not, you must do algebraic manipulations so that they are of the same form. So if you give me one line in standard form and the other in slope-intercept form, I will use substitution.
(3) Substitution -- when solving linear systems this method tends to be "messy". However, this is a general purpose method; you can use it to solve systems of almost any type. Thus if you want to find the intersections of the line y=2x+3 with the parabola `y=x^2` , you would use substitution. (Here `x^2=2x+3` , and you would solve for x)
(4) There are other methods for linear systems including Cramer's method, matrix multiplication, Gaussian elimination, etc... The more tools you have, the easier it is to decide which to use.
For instance, I solve all 2x2 linear systems with elimination, any larger systems with matrices. If the system is not linear, I use substitution or a graphing utility.
I use substitution when there are whole numbers and not fractions. Elimination, in my opinion, is better for fractions as you can quickly change it back to an integer.