I have a 2-story with a basement. I put a shelf in the basement next to the circuit breaker panel and installed an outlet right next to the shelf to power all my routing and server gear.
I bought 1000 feet of stranded Cat5e (this was in 2001 before I had a clue about solid vs. stranded and Cat6 was still a dream) and ran my own cable, terminated it, and made my own patch cables. Recently I put in an HP Gigabit switch and I get 950+kbps end to end with good Intel PCIe network cards.
You will need 1/2 or 3/8 inch or so wood drill bits (and a drill ... duh!) and maybe a bit extender to get through the plates (2 by 4s at the tops and bottoms inside walls).
Patience and planning are your allies! Use them. If you don't, you will end up with useless holes in various places.
It is definitely easier to run cables through internal walls than external. External walls typically contain insulation and this obviously creates complications in passing wire. A fishtape (specialized coiled steel ribbon tool intended for running wires) is very helpful and sometimes a necessity, but it is possible to get by with strong string, a small weight to keep the string taut, and a mangled coat hanger to fish for the taut string in the wall.
Here's an example:
Let's assume that you have 1 story with a slab foundation (rare AFAIK around Indianapolis, but illustrates the idea), so you need to go in with the wire from the attic.
1) Locate where the room jack should be.
2) Identify where the studs are (studs are the vertical 2x4 pieces of wood inside the walls) and lightly mark where you are going to put the outlet.
3) Cutout the drywall (sheetrock) according to the wall plate/outlet box template.
4) Poke a finishing nail up through the drywall on the ceiling directly over your cutout.
5) Remove the nail and replace it with something longer....something like a portion of coat hanger that is long enough poke all the way up through the drywall and the attic insulation.
6) Take your drill, drill bit, extension cord, string, small weight, etc... hook up the ext cord and drill and go into the attic.
7) Find the coat hanger (or whatever) sticking up.
8) Right next to it should be the plate for the wall containing your outlet box cutout (see step 3).
9) Drill all the way through the plate. (near the middle of the wood next to the coat hanger.
10) Tie weight to string.
11) Drop weight through drilled hole and feed about 8 feet or so of string.
12) Tie off or nail or bubblegum string to something.
13) Go back to outlet box cutout.
14) Bend a small hook into the end of the remainder of the coat hanger.
15) Use bent hanger to "fish" the string through the outlet box cutout.
16) Remove weight from string.
17) Tie string to your cable.
18) Tape the cable tip to the string so that there is a gradual transition from the string to the cable.
19) Go to attic and pull cable up through drilled hole.
You could also have brought cable up to attic and replaced 10, 11, 12 by shoving cable down the drilled hole instead of string. This is usually what I do.
If you encounter insulation....buy a fishtape.