The two ways that you mention, plus looking your curve up in a database (as Matt E. suggests), are the most practical and efficient ways I can think of. Here are two other ways to do this, one practical (but not as efficient) and one which is by no means practical (I think):
Use division polynomials. If $E$ is defined over $\mathbb{Q}$, then $E(\mathbb{Q})$ can only have torsion points of order up to certain bounds. If $P$ is a point of prime order, then the order is $2$, $3$, $5$, or $7$ (by Mazur's theorem). You can find the division polynomials for each of these primes, and see if they have any roots in $\mathbb{Q}$. A root in $\mathbb{Q}$ would give you a rational $x$-coordinate of a torsion point of said order. You can also find the division polynomials of order $p^n$. If a point $P$ has order $p^n$, then the order is at most $8$, $9$, $5$, or $7$, so you only really need to find the $8$th, $9$th, $5$th and $7$th division polynomials, and factor those, to find all the torsion points on $E(\mathbb{Q})$.
Not practical, and conjectural: Use the Birch and Swinnerton-Dyer conjecture. BSD provides a conjectural formula for a certain Taylor coefficient of the $L$-series of the elliptic curve in question. The size of the torsion subgroup appears in the denominator of the coefficient... However, this coefficient is a real number. The real period $\Omega_E$ can always be calculated. If you could calculate the regulator $R_E$ of your elliptic curve (for instance, if you know the rank is $0$, then $R_E=1$), then you could calculate $\Omega_E\cdot R_E$, calculate the coefficient computationally, divide the result by $\Omega_E\cdot R_E$ and obtain a rational number, whose denominator is a divisor of the square of the size of the torsion subgroup of $E$ (notice that there may be some cancellation with the numerator!). This information would then allow you to find the torsion points on $E$ (see previous bullet point).
Example (with division polynomials): Let $E$ be the curve 53b3
in Cremona's database, with Weierstrass equation
$$E: y^2 +xy+y= x^3-x^2-14x+29.$$
Let us first find division polynomials:
($p=2$) The 2nd division polynomial, defining the $x$-coordinates of $2$-torsion points, is given by $4x^3 - 3x^2 - 54x + 117$. This is irreducible, so there are no $2$-torsion points defined over $\mathbb{Q}$.
($p=3$) The 3rd division polynomial is
$$3x^4 - 3x^3 - 81x^2 + 351x - 270,$$
and it factors as $3(x - 1)(x^3 - 27x + 90)$. Thus, there is a point of order $3$ with $x$-coordinate $1$. By plugging into the equation of $E$, we find that $(1,3)$ and $(1,-5)$ are points of order $3$ on $E$. Since we found a point of order $3$, we need to keep going and look for points modulo $9$, $27$ (can't happen over $\mathbb{Q}$), etc...
($9$) The $9$ division polynomial has degree $40$ so we won't reproduce it here. However, it has a bunch of linear factors in its factorization:
$$(x - 9)(x - 3)(x - 1)(x + 3)\cdot (\text{higher order factors}).$$
The points with $x=1$ are of no interest to us, since they are points of order $3$. The other coordinates $x=\pm 3$ and $x=9$ correspond to points of order exactly 9, so we need to check if their $y$-coordinates are in $\mathbb{Q}$. Indeed, they do correspond to points of order $9$, namely
$$(3,1), (-3,7), (9,-29),(9,19),(-3,-5), (3,-5).$$
Notice, however, that $(3,1)$ generates all of them. We move on to order $27$, since we found points of order $9$.
- ($27$) The 27th division polynomial is of degree $364$, but all the linear factors in its factorization already appeared in the 9th division polynomial, so there are no points of order $27$ (again, there are NO points of order $27$ on elliptic curves over $\mathbb{Q}$).
($p=5$) The 5th division polynomial is of degree $12$ and irreducible. Thus, there are no points of order $5$.
($p=7$) The 7th division polynomial is of degree $24$ and irreducible. Thus, there are no points of order $7$.
Hence, $E(\mathbb{Q})_\text{tors} \cong \mathbb{Z}/9\mathbb{Z}$.
Example (with BSD and L-functions): Let $E$ be the curve 53b3
in Cremona's database, with Weierstrass equation
$$E: y^2 +xy+y= x^3-x^2-14x+29.$$
First, we perform a $2$-descent on $E$ to calculate the $2$-Selmer group. It turns out to be trivial. This means two things: the rank is $0$, and Sha is trivial. In particular, the regulator is $R_E=1$. Moreover:
- The real period is $\Omega_E=3.09156554910300755665231500284\cdots$
- The Tamagawa numbers are $c_2=9$ and $c_3=3$ for $p=2$ and $3$ respectively.
- The value of the L-function at $1$ can be calculated to be
$$L(E,1)\approx 1.03052184970100251888410500095\cdots$$
If we believe BSD in this case, then we must have:
$$(\# E(\mathbb{Q})_\text{tors})^2 = \frac{\# \text{Sha} \cdot \Omega_E\cdot R_E\cdot \prod c_p}{L(E,1)} = \frac{1\cdot (3.09156554910300755665231500284\cdots)\cdot 1 \cdot 27}{1.03052184970100251888410500095\cdots} =81.000000000000000000000000000\cdots.$$
Thus, since $(\# E(\mathbb{Q})_\text{tors})^2$ must be an integer, it must be $81$, and $\# E(\mathbb{Q})_\text{tors} = 9$. Since $ E(\mathbb{Q})_\text{tors}$ is an abelian group, there are only two options: $\mathbb{Z}/3\mathbb{Z}\times \mathbb{Z}/3\mathbb{Z}$ or $\mathbb{Z}/9\mathbb{Z}$. However, the former is imposible because if $E[n]$ is defined over a field $F$, then $F$ must contain the $n$th roots of unity. But $\mathbb{Q}$ does not contain $\sqrt{-3}$. Hence, it must be $\mathbb{Z}/9\mathbb{Z}$.
Magma code Here is Magma code for all I did above:
E:=EllipticCurve("54b3");E;
DivisionPolynomial(E,2);
Factorization(DivisionPolynomial(E,2));
DivisionPolynomial(E,3);
Factorization(DivisionPolynomial(E,3));
IsPoint(E,1);
P:=E![1,3,1];
2*P; 3*P;
DivisionPolynomial(E,9);
Factorization(DivisionPolynomial(E,9));
IsPoint(E,3);
IsPoint(E,9);
P:=E![3,1,1];
P,2*P,3*P,4*P,5*P,6*P,7*P,8*P,9*P;
Degree(DivisionPolynomial(E,27));
// Factorization(DivisionPolynomial(E,27));
DivisionPolynomial(E,5);
Factorization(DivisionPolynomial(E,5));
DivisionPolynomial(E,7);
Factorization(DivisionPolynomial(E,7));
TwoSelmerGroup(E);
RealPeriod(E);
TamagawaNumbers(E);
L:=LSeries(E);
Evaluate(L,1);
27*RealPeriod(E)/Evaluate(L,1);
Yes, one can detect if a point $P$ has infinite order, if one is allowed to apply the theorem of Mazur that classifies all the possible torsion group of elliptic curves defined over $\mathbb{Q}$, see Wikipedia link.
From the theorem one knows that if a point $P$ has order greater than $12$ then the order is infinite. So all you need to check is if $nP = \mathcal{O}$ for any $0 \leq n \leq 12$. Otherwise, the order of the point is infinite.
Best Answer
The approved answer has caused some risibility at mathoverflow, and I'll elaborate on Robin's more reasonable comment (but I'm inclined to attribute the descent argument in this case to Euler--at least he wrote it down). The version I give in an undergrad number theory class is this: First one develops the standard facts about Z[w] where w^2+w+1=0. (It has unique factorization, 2 is prime, the units are 1,-1,w,-w,w^2 and -w^2, any element not 0 or a unit has absolute value >1, and each congruence class mod 2 is represented by 0 or a unit). Then one notes that it's enough to prove:
Theorem--There are no a,b,c in R with a+b+c=0, abc a non-zero cube and a=b=1 mod 2.
The proof of the theorem is a reductio. Let H be max(/a/,/b/,/c/) and choose a solution a,b,c with minimal H. (H^2 is an integer). a, b and c are evidently pairwise prime. Since their product is a non-zero cube, each is (unit)(cube). Since a=b=1 mod 2, a=A^3 and b=B^3, and we may assume that A=B=1 mod 2. Since abc is a cube, c=C^3 for some C in R. Since 2 divides c, 2 divides C and H is at least 8.
Now let S=Aw+Bw^2, T=Aw^2+Bw, and U=A+B. Then S+T+U=0 while STU is A^3+B^3=-C^3. Also S=T=1 mod 2, while max(/S/,/T/,/U/) is at most 2(H^(1/3)). This contradicts the minimality assumption.