I'll second this recommendation, which 1HzCoder originally pointed me to when I asked the same question.
-Pi with working (possibly customised) Raspian running on it
-Card reader plugged into Pi, containing the destination card to which the current Raspbian will be cloned.
-The script referenced in the thread 1HzCoder mentioned.
No external computer or software required.
The great thing about this is that the destination card can be SMALLER than the original card, if the original card does not contain more actual data than can be fitted on the smaller card.
Example: You downloaded a 2GB Raspbian Image, wrote it to a 32GB card and expanded the OS to fill the whole of that card using Raspi-Config. You haven't used it for very long, and the programmes / data that you have accumulated on it so far do not amount to more than about 6GB. The script will not only clone the data on the large card but resize it, if possible, to fit onto whatever card you have chosen to use as the destination. In this case, it would be sensible /economical to choose an 8GB card as the destination for the backup.
Oh, and the nice thing is that by cloning your working Raspbian card the script naturally also includes a copy of itself on the clone, so that the clone can clone itself just as easily...
Only one thing - it needs a utility called 'rsync' installed first in order to work. On my Raspbian, it wasn't installed by default.