The reason these items get discolored in the first place is due to oxidization (effect of the item combining with oxygen). Tarnish is the layer of corrosion that develops over the item as it undergoes that oxidation.
First remove surface dirt using a soft brush. Vinegar is a remarkable cleaner if you do not have a proprietory cleaner to do the job. Dampen a soft cloth in hot vinegar, then dip in table salt and rub the item, or make a paste of flour, salt and white vinegar in equal parts. You may wish to add powdered detergent and lemon juice for added effect. Use very warm water. You may need several applications. When the item is clean, wash in hot, soapy water, rinse and dry thoroughly with tissue. To remove heavy tarnish, difficult stains and corrosion wash in hot, soapy water or a weak ammonia and water solution and rinse. Some readers suggested using steel wool. Remember that using steel wool will cause scratches so use only extra fine steel wool if absolutely necessary. For cleaning silver items, line a large saucepan with aluminum foil. Add your silver. Make sure each piece touches the foil. Completely cover with warm water and add 2 Tablespoons of baking soda. Let stand for 10 – 15 minutes. Now having cleaned your items unless you want to do these operations regularly the trick is to seal the items against oxidization as best one can. Rub the items with a cloth moistened with olive oil after each polishing. Olive oil retards tarnish. A weekly wiping with a little liquid ammonia on a soft cloth will help keep unlacquered brass shiny. Sulfur particularly hydrogen sulfide tarnishes silver. Tarnish is accelerated in a humid environment. So store in a display cupboard with a water absorbing desiccated silica gel to keep the relative humidity low. Activated charcoal or similar commercial product will also remove tarnishing gases. It is possible to get the items lacquered for permanent protection.