Remove giblet packet from turkey or chicken, rinse thoroughly under cold water, pat dry, and trim excess fat. Some prefer to set liver aside to add later if concerned about bitterness.
Place giblets and neck in stockpot with water, broth, vegetables, bay leaves, thyme, peppercorns, and salt. Bring to boil over high heat and skim foam from surface.
Reduce heat to low, partially cover, and simmer for 2 hours until giblets are very tender and stock is deeply golden and concentrated in flavor.
Strain stock through fine-mesh strainer into bowl, pressing vegetables to extract juices. Pull meat from neck bones and finely chop all giblets into 1/4-inch pieces, set aside.
Melt butter in large saucepan over medium heat, add flour, and whisk constantly for 3-4 minutes until roux is light tan and smells nutty.
Slowly add giblet stock while whisking constantly, starting with 1 cup then adding remaining stock gradually. Add pan drippings if using, bring to gentle boil, then reduce heat and simmer 10 minutes until thickened.
Stir in cream, chopped giblet meat, hard-boiled eggs (if using), salt, pepper, and vinegar. Simmer 2-3 minutes to heat through and adjust seasoning to taste.
Thin with additional stock if too thick or simmer longer if too thin. Transfer to warmed gravy boat and serve immediately over turkey, mashed potatoes, or dressing.