What primer should I use to paint over nicotine stained walls?
I would just use a good stain covering primer like Kilz.  I have used both KILZ 2® Latex Primer and KILZ® Premium Primer, the Premium version is noticeable better than the Kilz 2.

But it looks like they have an even better version called KILZ MAX™ Primer. I have never used this one but it does mention covering nicotine:


  KILZ MAX™ is a water-based primer, sealer and stainblocker developed
  with new technology that’s formulated to perform like an oil-based
  product. It tackles tough stains including medium to heavy water
  damage, rust, smoke, nicotine, grease, tannin, ink, pencil, felt
  marker, pet stains and more. KILZ MAX also seals pet and smoke odors.
  Topcoat with latex or oil-based paint.


Kilz does recommend cleaning the surface; see the "Surface Preparation" section for all of their recommendations.  The most relevant section is this:


  The surface must be clean, free of dust, grease, wax, peeling paint,
  mold, mildew and wallpaper paste. If washing is necessary, use a
  non-soapy detergent or a TSP substitute. Rinse well and allow to dry.