That method will work, but there's actually a simpler more general way. But first let's finish that method. $\:$ After multiplying through by $\rm\: (x-3)^2\: $ (squared to preserve the sense of the inequality) we obtain $\rm\ 3\:x\:(x-3) \ge\: 4\:(x-3)^2\:.\:$ Putting all terms on one side and factoring out $\rm\ x-3\ $ we obtain $\rm\: p(x) = (x-3)\:(a\:x-b) \ge 0\ $ for some $\rm\:a\:,\:b\:.\:$ The (at most) two roots partition the real line into (at most) three intervals where $\rm\ p(x)\ $ has constant sign. So the answer follows by simply testing these few intervals to determine where $\rm\:p(x)\:$ has the desired sign.
But multiplying through by $\rm\: (x-3)^2\: $ creates more work than necessary. Instead we can simply multiply through by $\rm\: x-3\: $ and worry about the signs later, since we really only need to know the other root (besides $\rm\ x = 3\:$) of the quadratic $\rm\: p(x)\:.\:$ Indeed, if we multiply by $\rm\ x-3\ $ we get either $\rm\ 3x \ge 4\:x-12\ \Rightarrow\ 12 \ge x\ $ or we get the reverse $\rm\ 12 \le x\:,\:$ depending on the sign of $\rm\ x-3\:.\: $ Either way we get the same root $\rm\: x = 12\:,\: $ so we obtain the same partition of the real line into intervals where the function has constant sign. This method is simpler since one works with lower degree polynomials, here linear vs. quadratic in the first method above.
Similar remarks hold true for arbitrary rational functions. Suppose that $\rm\: A,B,C,D\: $ are polynomials in $\rm\:x\:$ and we seek to determine where $\rm\: A/B\ >\ C/D\:.\: $ The first method converts to polynomials by multiplying it by $\rm\: (BD)^2\: $ resulting in $\rm\: ABD^2 >\: CDB^2\ $ or $\rm\ BD\ (AD-BC) > 0\:.\:$ For the second method, we partition the real line by the roots of the denominators $\rm\: B,D\ $ and also by the roots of the polynomial obtained by multiplying through by $\rm\:BD\:,\:$ i.e. the roots of $\rm\: AD-BC\:.\:$ However the union of these root sets is precisely the same as the roots of $\rm\: BD\ (AD-BC)\: $ from the first method. Since both methods partition the real line into the same constant-sign intervals, they're equivalent.
If you study rational (and algebraic) functions and their Riemann surfaces you'll see that this is just a special case of how their roots (including poles = roots at $\infty$) serve to characterize them. From another viewpoint, the above method can be viewed as a very special case of Tarski's quantifier elimination algorithm for deciding arbitrary real polynomial inequalities - which, like above, works by decomposing $\rm\: \mathbb R^n\: $ into a finite number constant-sign (semi-)algebraic "cylinders".