Alex’s great comments got me thinking about what might help you and others in your shoes. Two part soprano and bass writing is really a basic key to good part writing. As you've found out, just those two parts will generally define a composition, so it runs to reason that when you are harmonizing a melody (soprano), the next thing you would do is write the bass line making sure it is consistent with "the rules:"
Motion
In considering linear movement between two parts, voices can move together in the same general direction (parallel motion), in different directions (contrary motion), and one part moving while the other stays or repeats the same note (oblique motion).
You will rarely run into trouble writing contrary and oblique motions. You might frequently want to write in parallel motion though, but will need to understand what to watch out for. It’s important to note that parallel motion refers to any two notes moving in the same general direction, not just two of the same interval. For example, c and g (fifth) moving up to d and b (sixth), or consecutively to d and a (fifth) are both parallel movements, the later type being an important distinction when the consecutive intervals are a fifth, octave, or unison, which should all be avoided.
Spacing
You will rarely get into much trouble writing in two parts, soprano and bass, because the voices are far enough apart in register not to conflict. When adding alto and tenor parts however, it will be important to keep track of how far apart the notes are spaced. While some suggest that there should be no more than an octave distance between any two adjacent upper parts (soprano and alto, or alto and tenor), you will probably have better results limiting that distance to a sixth. Because of acoustical principals, some suggest that any distance is okay between the tenor and bass voices, but you may be happier with your results if you keep the distance no greater than an octave.
Voice Leading
The next step is to combine the concepts of motion and spacing into how all these voices move in time, sometimes called voice leading. A good goal is to write lines which when taken by themselves show both interest and independence. Generally the upper voices will move mostly by steps and an occasional small skip, while the bass line will reflect more frequent and wider skips. The important thing to note here is that the voices shouldn’t cross each other. It’s hard to describe without notation, but say the bass is on c and the tenor is a fifth above at g. if the tenor moves up a step to a, and the bass jumps up an octave to c, that’s a voice crossing problem (where if the bass went no higher than the tenor’s a, everything is cool). It’s also important to note that ALL the rules apply to ALL the partsjust because there aren’t parallel fifths between the alto and tenor lines doesn’t mean that they’re okay between the soprano and tenor, for example (they’re just harder to catch sometimes).
As all the musical examples above are great, your goal is part continuity over time. It does no good to write great parts for two bars only to have to break the rules in the third to get out of a jam. Students often have trouble getting this continuity down when referring to longer pieces, so nearly everyone learning this stuff “gets” to go through the Bach chorales as Dave suggested above. They will not only teach continuity, but Bach remained creatively faithful to the rules so you can depend upon them. If you don’t want to buy the book, just go to the library (or maybe search the internet) and photocopy a few to get started. Copy the choral melody to whatever you use for notation and then don’t look at Bach’s harmonization until you have finished with your own. Then go back and compare the two and voila - you will be amazed at what you learn!