My Calc 1 teacher had a very nice, clean way of doing repeated integration by parts. By "nice, clean way," I mean that it takes less writing and more doing. As trivia, this "table method" was briefly seen in the movie Stand and Deliver
First off, do the LIATE thing from Cimorene's writeup, to determine what you use for u. This technique seems to be useful when you have an xn in front of some other function whose derivative or antiderivative never "goes to 0" (You can keep differentiating xn and the derivative will go to 0, but if you keep differentiating ex, the derivative never goes to 0). Here's how the table works:
Three columns, one labeled "u," the second "dv," and the third "sign" or "+/-" or whatever. Or unlabeled. The third column is used for the sign.

    u    |   dv    | sign
--------------------------
         |         |
         |         |
         |         |
         |         |
         |         |
         |         |
         |         |

The u column is where you list all your u-substitutions in terms of x, and the dv is where you list all your dv substitutions in terms of x. Here's how this works:
The nth row in the table will contain the (n - 1)th derivative of the initial u in the "u" column, and the (n - 1)th ANTIderivative of the initial dv in the "dv" column (e.g. the first row will have your initial u and your initial dv. The next row will be the derivative of u and the antiderivative of dv. Next row has the second derivative of u, and second antiderivative of dv. and so on). The u-column should have values until it becomes 0. At this point, you should have the same number of values in the "sign" and the "dv" column.
The sign column works like this: Starting from the second row, put a "+" sign. Next row is a "-". Next is a "+". And so on. It alternates like that.
To use this table to find the integral, you take the value in the first row of the "u" column, multiply it by the SECOND value in "dv", and the SECOND value in "sign". That's the first term of the integral. The next term will be the SECOND row of the "u" column, times the THIRD row of the dv column times the THIRD row of the "sign" column. Ad infinitum, or at least until you're done.

Okay, so that might be confusing. Let's work out a problem:

x3 cos(3x) dx

Since we know the derivative of x3 will eventually go to 0, we say our initial u is x3 and our initial dv is cos(3x). Here's what we have so far:

    u    |     dv      | sign
------------------------------
   x3    |   cos(3x)   |
         |             |

Nothing in the sign column yet. Here's the next row:

    u    |   dv        | sign
------------------------------
   x3    | cos(3x)     |
  3x2    | sin(3x)/3   |  +

Because the antiderivative of cos(3x) = sin(3x)/3, and the derivative of x3 = 3x2.
I'll go ahead and fill out the rest of the table:

    u    |   dv        | sign
------------------------------
   x3    | cos(3x)     |
  3x2    | sin(3x)/3   |  +
  6x     | -cos(3x)/9  |  -
  6      | -sin(3x)/27 |  +
  0      | cos(3x)/81  |  -

Make sense? Good? Okay.
(NOTE: If anyone knows how I could improve the ASCII here, help would be appreciated. I'd like to be able to show the lines in the table which connect the products)
The first term is x3 sin(3x)/3 (First row of "u" times second row of "dv" times second row of "sign"). The second term will be -1 ⋅ (3x2 ⋅ -cos(3x)/9) = x2 cos(3x)/3 (second row of "u" times third row of "dv" times third row of "sign"). Our third term is 6x ⋅ -sin(3x)/27 = -2 x sin(3x) / 9. And so on. Thus:

x3 cos(3x) dx = x3 sin(3x) / 3 - (3x2 ⋅ -cos(3x) / 9) + (6x ⋅ -sin(3x) / 27) - (6 ⋅ cos(3x) / 81)
= x3 sin(3x) / 3 + x2 cos(3x) / 3 - 2x sin(3x) / 9 - 2 cos(3x) / 27

Voila. Makes integrating things like this less of a hassle.