We describe the method used to detect sources for the Herschel-ATLAS survey. The method is to filter the individual bands using a matched filter, based on the point-spread function (PSF) and confusion noise, and then form the inverse variance weighted sum of the individual bands, including weights determined by a chosen spectral energy distribution. Peaks in this combined image are used to estimate the source positions. The fluxes for each source are estimated from the filtered single-band images, interpolated to the exact sub-pixel position. We test the method by creating simulated maps in three bands with PSFs, pixel sizes and Gaussian instrumental noise that match the 250, 350 and 500 micron bands of Herschel-ATLAS. We use our method to detect sources and compare the measured positions and fluxes to the input sources. The multi-band approach allows reliable source detection a factor 1.2 to 3 lower in flux compared to single-band source detection, depending on the source colours. The false detection rate is reduced by a factor between 4 and 10, and the variance of the source position errors is reduced by about a factor 1.5. We also consider the effect of confusion noise and find that the appropriate matched filter gives a further improvement in completeness and noise over the standard PSF filter approach. Overall the two modifications give a factor of 1.5 to 3 improvement in the depth of the recovered catalogues compared to a single-band PSF filter approach.