You should be able to get a reasonable steak stovetop using a cast iron grill pan, if you have a strong enough exhaust. Oil the cast iron pan (with canola or such), then heat it very hot, until it starts to smoke. Make sure the meat is completely dry on the outside (wipe with a paper towel, water will prevent browning) and gently place in the pan. Leave it there for a minute or two (it'll smoke quite a bit!), rotate 90° to get the nice grill marks. Leave for another minute or two. Flip, and repeat for the other side.
It may splatter, have a splatter screen handy. It will smoke, quite a bit, make sure the exhaust is on high.
You will probably have a medium-rare steak now. Using a thinner cut will make it more well done (you can cut a thick steak in half with your chef's knife, making two thin steaks); so will plopping it in the oven (not sure if you want the oven before or after searing, I like 'em medium rare...).
Remember to let the meat rest for 5 minutes or so before serving.
Also, if your steaks are coming out ridiculously tough, you're probably using the wrong cut of meat, or some terrible grade. What cut are you using?
[edit: I should note that, in case it wasn't obvious, the burner should be up pretty high]
Edit by rumtscho There is a reason this answer specifies a cast iron pan. If you are limited in your cookware choice, pay attention to the maximum temperature your pan can tolerate. If you are using a non-stick pan, you have to go on medium heat and wait longer, else you'll damage the pan. (And sorry, but you can't get it as tasty as on high heat that way).
First, about the temperature. Your safest option is to use a gun ;) The correct temp for shallow frying is between 150 and 190 degrees celsius. So if you have an infrared "gun" (a thermometer which neasures the temp of the surface at which it is pointed), use it to determine the stove setting at which the temperature of the dry (not ptfe coated) pan stabilizes in this interval after longer heating. If you don't have it, use the typical tricks for determining the pan temp, they are described in other questions here on SA.
Important: different stoves heat to different temperatures. Don't let the numbers at the knob to fool it into thinking that a given temp is "medium high" because it has the number 7. My own stove stabilizes at ~180 degrees C at setting 2 (out of 10), with setting 3 pushing 230. On the other hand, the minimum temperature for cooking fish is 50 deg. As stoves rarely go below 80 degrees, there is practically no chance to set your stove to a temperature so low that the fish stays undercooked (but it might need unreasonably long times on very low settings).
As for the spraying: the fat at frying temperature will always spray. You can still reduce your problems. First, the bubble explosions at the lower temperature will be less violent. Second, surface moisture promotes spraying (which is produced by water being instantly turned into steam in the oil). So pat the fish dry with paper before frying it. If this isn't enough, you can also drag it through flour. This will make the crust crisper. As the spraying won't be eliminated completely, don't throw in the pieces. Take a flat spatula with a long handle, place the piece on the working end, step back from the stove and slowly lay the fish into the oil, gradually pulling the spatula from beneath it. The turning should produce less spraying, so using a fork or spoon to press the fish against the spatula isn't a problem (or kitchen pincers, if you have those).
All of the above applies to everything you are shallow frying, not only fish. Only the flour is unsuitable for some vegetables.
Best Answer
The most important thing you can do is buy quality beef. You can throw a USDA Select steak on a 700 degree charcoal grill, cook it perfectly, and it'll still be tough and not at all what you'd get at a fine steakhouse.
In the USA there are three grades of beef available to a consumer: Select, Choice, and Prime. There are lesser grades but they go to fast food joints, prisons, military personnel, and miscellaneous other weird uses.
In most american supermarkets you will find only select, period. This is an "average" steak. It's typically devoid of marbling, and results in a rather flavorless tough steak.
To find choice steaks you have to go to a higher end supermarket, e.g. Whole Foods You will pay significantly more for a choice steak, but the difference is marked. The marbling will result in a tenderer steak due to the internal fat melting and tenderizing the steak.
Finally, prime cuts. These are very hard to come by in any supermarket unless you live in a bigger city. You typically have to go to a specialty shop or butcher for these. Less than 2% of all beef is classified as prime. On top of this, restaurants get first pick. So even if you do buy a great prime steak, you are likely getting the lower end of the prime spectrum. However, the difference is amazing. The marbling is more intense, more evenly distributed and when cooked properly results in a steak that melts under your knife.
Another one-up a fine steakhouse has on you is they age their beef. Any steak you buy in the grocery store is minimally wet aged. The finest steakhouses dry age their beef. The difference? Wet aging consists of simply vacuum packing the meat (as in a whole side of cow) and refrigerating it for about a week. After that, it's cut smaller and sold to stores. Dry aging is a more complicated and expensive process. Dry aged beef is hung for at least two weeks in a refrigerator. Moisture in the meat is allowed to escape and evaporate, which concentrates the beef flavor of the beef. The beef also grows a moldy rind which is cut off and thrown away. After the aging is complete you're left with 75-80% of the meat you started with. This commands a premium price.
Unfortunately, you can't dry age a steak in your home. There are some refrigerator aging processes that you'll find on this site and others, but they aren't a true comparison.
Another variation that has become more popular is grass-fed beef. This has become a recent fad, at least in the USA. Cattle are traditionally fed corn which makes them fatter and "juicier", but it also leaves the meat tasting very bland. Likely, if you live in the USA, every steak you've ever had was corn-fed. Grass-fed beef on the other hand is fed predominantly grass, they're allowed to graze as cows should. This is good for the cows, because they don't actually eat corn. A cow is made to eat grass. Corn is rather harsh on their digestive system, but they are given no other choice. In the wild a cow would never eat corn. The end result is a very different flavored steak. Grass-fed beef has a much richer, meatier flavor. However, it's also tougher than corn-fed beef. For this reason a steak you will be served in a fine steakhouse is likely not to be grass-fed unless it is specifically designated as such.
With all that out of the way I suggest doing what I do. When I feel like an amazing home cooked steak, I'll splurge on a nice choice ribeye, dip it in a mixture of melted clarified butter and oil, season liberally with salt and pepper, and pan fry it.