We present a method for numerically solving a Gross-Pitaevskii system of equations with a harmonic and a toroidal external potential that governs the dynamics of one- and two-component Bose-Einstein condensates. The method we develop maintains spectral accuracy by employing Fourier or spherical harmonics in the angular coordinates combined with generalised-Laguerre basis functions in the radial direction. Using an error analysis, we show that the method presented leads to more accurate results than one based on a sine transform in the radial direction when combined with a time-splitting method for integrating the equations forward in time. In contrast to a number of previous studies, no assumptions of radial or cylindrical symmetry is assumed allowing the method to be applied to 2D and 3D time-dependent simulations. This is accomplished by developing an efficient algorithm that accurately performs the generalised-Laguerre transforms of rotating Bose-Einstein condensates for different orders of the Laguerre polynomials. Using this spatial discretisation together with a second order Strang time-splitting method, we illustrate the scheme on a number of 2D and 3D computations of the ground state of a non-rotating and rotating condensate. Comparisons between previously derived theoretical results for these ground state solutions and our numerical computations show excellent agreement for these benchmark problems. The method is further applied to simulate a number of time-dependent problems including the Kelvin-Helmholtz instability in a two-component rotating condensate and the motion of quantised vortices in a 3D condensate.