Nanoparticles show many exciting and novel optical properties including the ability to scatter light to give sub-wavelength control of the optical field. This makes many novel applications possible including surface enhanced spectroscopies, sub-wavelength lithography and many promising approaches in plasmonics. New techniques are needed to accurately understand and design the optical behaviour of particles on the nanoscale. We present a method of calculating both the internal and scattered fields at any point in space around arbitrarily shaped axisymmetric nanoparticles. The flexibility of this technique allows us to find the scattering properties of dielectric and metallic particles, including both perfect conductors and genuine metals. This approach gives us access to details of the electromagnetic fields, both at the surface of particles and the far field region away from the particle, to an arbitrary precision.